#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
long long ad(long long a, long long b) {
  return (((a % mod + b % mod) % mod) + mod) % mod;
}
long long ap(long long a, long long b) { return ((a % mod) * (b % mod)) % mod; }
long long ksm(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b % 2 == 1) res = ap(res, a);
    a = ap(a, a);
    b /= 2;
  }
  return res;
}
int main() {
  long long n, m, L, R;
  cin >> n >> m >> L >> R;
  int ji = (R - L + 1) / 2, ou = (R - L + 1) / 2;
  ;
  if ((R - L + 1) % 2 && L % 2) {
    ji++;
  }
  if ((R - L + 1) % 2 && L % 2 == 0) {
    ou++;
  }
  if ((n * m) % 2 == 0)
    cout << ap(ad(ksm(ji + ou, n * m), ksm(ou - ji, n * m)), ksm(2, mod - 2));
  else
    cout << ksm((R - L + 1), n * m) % mod;
}
