#include <bits/stdc++.h>
using namespace std;
long long int powr(long long int a, long long int b) {
  if (b == 0) return 1;
  if (b % 2 == 0) {
    long long int temp;
    temp = powr(a, b / 2);
    return (temp * temp) % 998244353;
  } else {
    long long int temp;
    temp = powr(a, b / 2);
    return (((temp * temp) % 998244353) * a) % 998244353;
  }
}
int main() {
  long long int n, m, L, R;
  cin >> n >> m >> L >> R;
  if ((n * m) % 2 == 1) {
    cout << powr(R - L + 1, n * m) << endl;
  } else {
    if ((R - L + 1) % 2 == 0) {
      long long int ans;
      ans = powr(R - L + 1, n * m);
      ans *= powr(2, 998244353 - 2);
      ans %= 998244353;
      cout << ans << endl;
    } else {
      long long int ans;
      ans = powr(R - L + 1, n * m);
      ans++;
      ans *= powr(2, 998244353 - 2);
      ans %= 998244353;
      cout << ans << endl;
    }
  }
}
