#include <bits/stdc++.h>
int n1, n2, k1, k2;
int total;
int mem[105][105][25][2];
int ans = 0;
int add(int foot, int horse, int same, int type) {
  int i, sum = 0;
  if (type == 2 || type == 0)
    for (i = 1; i <= k1; i++) {
      if (foot + i == n1) {
        if (horse <= n2) {
          if (n2 - horse <= k2) {
            mem[foot + i][n2][i][1] = 1;
            sum += mem[foot + i][n2][i][1];
          }
        } else
          mem[foot + i][n2][i][1] = 0;
        break;
      }
      if (mem[foot + i][horse][i][1] == -1)
        mem[foot + i][horse][i][1] = add(foot + i, horse, i, 1) % 100000000;
      sum += mem[foot + i][horse][i][1] % 100000000;
      sum %= 100000000;
    }
  if (type == 1 || type == 0)
    for (i = 1; i <= k2; i++) {
      if (horse + i == n2) {
        if (foot <= n1) {
          if (n1 - foot <= k1) {
            mem[n1][horse + i][i][2] = 1;
            sum += mem[n1][horse + i][i][2];
          }
        } else
          mem[n1][horse + i][i][2] = 0;
        break;
      }
      if (mem[foot][horse + i][i][2] == -1)
        mem[foot][horse + i][i][2] = add(foot, horse + i, i, 2) % 100000000;
      sum += mem[foot][horse + i][i][2] % 100000000;
      sum %= 100000000;
    }
  return sum %= 100000000;
}
int main() {
  int i, j, k;
  scanf("%d %d %d %d", &n1, &n2, &k1, &k2);
  total = n1 + n2;
  for (i = 0; i <= 100; i++) {
    for (j = 0; j <= 100; j++) {
      for (k = 0; k <= 20; k++) {
        mem[i][j][k][0] = -1;
        mem[i][j][k][1] = -1;
      }
    }
  }
  printf("%d", add(0, 0, 0, 0));
  return 0;
}
