#include <bits/stdc++.h>
using namespace std;
const long long MOD = 998244353;
long long add(long long a, long long b) { return (a + b + 2LL * MOD) % MOD; }
long long mul(long long a, long long b) { return (a * b) % MOD; }
void sadd(long long &a, long long b) { a = add(a, b); }
void smul(long long &a, long long b) { a = mul(a, b); }
long long bp(long long a, long long b) {
  if (b == 0) return 1;
  long long x = bp(a, b / 2);
  smul(x, x);
  return b & 1 ? mul(x, a) : x;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, m, L, R;
  cin >> n >> m >> L >> R;
  L--;
  long long a = R / 2 - L / 2;
  long long b = R - L - a;
  if ((n * m) % 2 == 1) {
    cout << bp(R - L, n * m) << "\n";
    return 0;
  }
  long long cur = bp(add(a, b), n * m);
  cur = add(cur, bp(add(a, -b), n * m));
  cur = mul(cur, bp(2, MOD - 2));
  cout << cur << "\n";
}
