#include <bits/stdc++.h>
using namespace std;
int n1, n2, k1, k2, mod = 100000000;
int func(int ***d, int c1, int c2, int l) {
  if (d[l][c1][c2] != -1) return d[l][c1][c2];
  if (c1 == 0) return c2 <= k2;
  if (c2 == 0) return c1 <= k1;
  d[l][c1][c2] = 0;
  if (l == 0)
    for (int i = 1; i <= k1 && c1 - i >= 0; i++) {
      d[0][c1][c2] = (d[0][c1][c2] + func(d, c1 - i, c2, 1)) % mod;
    }
  if (l == 1)
    for (int i = 1; i <= k2 && c2 - i >= 0; i++) {
      d[1][c1][c2] = (d[1][c1][c2] + func(d, c1, c2 - i, 0)) % mod;
    }
  return d[l][c1][c2];
}
int main() {
  cin >> n1 >> n2 >> k1 >> k2;
  int ***d = new int **[2];
  d[0] = new int *[n1 + 1];
  d[1] = new int *[n1 + 1];
  for (int i = 0; i <= n1; i++) {
    d[0][i] = new int[n2 + 1];
    d[1][i] = new int[n2 + 1];
    for (int j = 0; j <= n2; j++) {
      d[0][i][j] = d[1][i][j] = -1;
    }
  }
  cout << (func(d, n1, n2, 0) + func(d, n1, n2, 1)) % mod;
  return 0;
}
