#include <bits/stdc++.h>
using namespace std;
int const MAXN = 2e6 + 9;
long long const mod = 998244353;
long long mul(long long a, long long b) {
  a %= mod;
  b %= mod;
  return (a * b) % mod;
}
long long add(long long a, long long b) { return (a + b) % mod; }
long long fast(long long a, long long b) {
  if (b == 0) return 1;
  long long x = fast(a, b / 2);
  if (b & 1) return mul(a, mul(x, x));
  return mul(x, x);
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  long long n, m, r, l;
  cin >> n >> m >> l >> r;
  long long all = n * m;
  long long it = r - l + 1;
  if (all & 1) {
    cout << fast(it, n * m) << '\n';
    return 0;
  }
  long long a = l, b = r;
  if (a & 1) a++;
  if (b & 1) b--;
  long long even = (b - a + 2) / 2;
  long long odd = it - even;
  long long ans = add(fast(even + odd, n * m), fast(even - odd, n * m));
  ans = mul(ans, fast(2, mod - 2));
  cout << ans << '\n';
}
