#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
;
const long long maxn = 1e2 + 2;
const long long maxk = 11;
const long long mod = 1e8;
long long D[maxn][maxn][maxk][2];
int main() {
  long long q, w, e, r, n, m, kn, km;
  cin >> n >> m >> kn >> km;
  D[0][0][0][0] = 1;
  for (q = 0; q <= n; q++) {
    for (w = 0; w <= m; w++) {
      for (e = 0; e < maxk; e++) {
        if (w + 1 <= m) D[q][w + 1][1][1] += D[q][w][e][0];
        D[q][w + 1][1][1] %= mod;
        if (q + 1 <= n) D[q + 1][w][1][0] += D[q][w][e][1];
        D[q + 1][w][1][0] %= mod;
        if (e < kn && q + 1 <= n) {
          D[q + 1][w][e + 1][0] += D[q][w][e][0];
          D[q + 1][w][e + 1][0] %= mod;
        }
        if (e < km && w + 1 <= m) {
          D[q][w + 1][e + 1][1] += D[q][w][e][1];
          D[q][w + 1][e + 1][1] %= mod;
        }
      }
    }
  }
  long long ans = 0;
  for (q = 0; q < maxk; q++) {
    for (w = 0; w < 2; w++) {
      ans += D[n][m][q][w];
      ans %= mod;
    }
  }
  cout << ans;
  return 0;
}
