#include <bits/stdc++.h>
using namespace std;
const int MOD = 1E8;
int foot, horse, kFoot, kHorse;
int DP[20][20][109][109];
int arranged(int fLeft, int hLeft, int kfLeft, int khLeft) {
  if (fLeft < 0 || hLeft < 0 || kfLeft < 0 || khLeft < 0) {
    return 0;
  }
  if (fLeft == 0 && hLeft == 0) {
    return 1;
  }
  int &save = DP[kfLeft][khLeft][fLeft][hLeft];
  if (save != -1) {
    return save;
  }
  save = (arranged(fLeft - 1, hLeft, kfLeft - 1, kHorse) +
          arranged(fLeft, hLeft - 1, kFoot, khLeft - 1));
  return save % MOD;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  memset(DP, -1, sizeof(DP));
  cin >> foot >> horse >> kFoot >> kHorse;
  cout << arranged(foot, horse, kFoot, kHorse) << endl;
  return 0;
}
