#include <bits/stdc++.h>
long long qui(long long a, long long b) {
  long long z = 1;
  while (1) {
    if (b == 0) break;
    if (b % 2) z = z * a % 998244353;
    a = a * a % 998244353;
    b = b / 2;
  }
  return z;
}
int main() {
  long long n, m, l, r;
  scanf("%lld%lld%lld%lld", &n, &m, &l, &r);
  if (n % 2 && m % 2) {
    printf("%lld", qui((r - l + 1), (n * m)));
  } else {
    long long num = r - l + 1;
    long long x = (r - l + 1) / 2;
    long long y = x;
    if (num % 2) {
      if (l % 2)
        y++;
      else
        x++;
    }
    long long sum = qui((y + x), (n * m)) + qui((y - x), (n * m));
    sum = sum % 998244353;
    sum = sum * qui(2, 998244351);
    printf("%lld", sum % 998244353);
  }
  return 0;
}
