#include <bits/stdc++.h>
using namespace std;
const long long maxn = 2e5 + 500;
const long long mod = 998244353;
const long long INF = 1e18 + 1;
long long bp(long long a, long long n) {
  if (!n) return 1;
  if (n & 1) return (bp(a, n - 1) * a) % mod;
  return bp(a * a % mod, n / 2);
}
long long inv(long long x) { return bp(x, mod - 2); }
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  srand(time(0));
  long long n, m, l, r;
  cin >> n >> m >> l >> r;
  long long e = (r - l + 1) / 2;
  long long o = (r - l + 1) / 2;
  if (l % 2 == r % 2) {
    if (l % 2 == 0)
      e++;
    else
      o++;
  }
  long long pw = n * m;
  long long ans = bp(e + o, pw);
  if (pw % 2 == 0) {
    if ((e + o) % 2 != 0) ans++;
    ans = ans * inv(2) % mod;
  }
  cout << ans;
  return 0;
}
