#pragma GCC optimize(2)#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<stack>#include<map>#include<queue>#include<cstdio>#include<set>#include<map>#include<string>usingnamespace std;constint mod =998244353;intksm(int a,longlong b){int ans =1, base = a;while(b){if(b &1)
ans =1ll* ans * base % mod;
b >>=1;
base =1ll* base * base % mod;}return ans;}voidsolve(){int n, m, l, r;
cin >> n >> m >> l >> r;int x = r /2-(l -1)/2;int y = r - l +1- x;if(1ll* n * m &1) cout <<ksm(r - l +1,1ll* n * m);else cout <<(ksm(x + y,1ll* n * m)+ksm(x - y,1ll* n * m))*1ll*ksm(2, mod -2)% mod;}intmain(){//freopen("Testin.txt", "r", stdin);solve();return0;}