#include <bits/stdc++.h>
using namespace std;
long long int po(long long int x, long long int n) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return po((x * x) % 998244353, n / 2);
  else
    return (x * po((x * x) % 998244353, (n - 1) / 2)) % 998244353;
}
long long int GCD(long long int A, long long int B) {
  if (B == 0)
    return A;
  else
    return GCD(B, A % B);
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  long long int n, m, l, r;
  cin >> n >> m >> l >> r;
  if ((n * m) % 2 == 1)
    cout << po(r - l + 1, n * m);
  else
    cout << ((po(r - l + 1, n * m) + (r - l + 1) % 2) * po(2, 998244353 - 2)) %
                998244353;
}
