#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 5;
const int mod = 1e8;
int r[N], g[N], b[N], d, dp[N][N][N], dp1[N][N][N], dis[N];
char o;
pair<int, int> p;
bool mark, h = false;
string s;
vector<int> vt[N];
deque<int> dq;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long t, n1, n2, k1, k2;
  cin >> n1 >> n2 >> k1 >> k2;
  for (int i = 1; i <= k1; i++) {
    dp1[i][0][i] = 1;
  }
  for (int i = 1; i <= k2; i++) {
    dp[0][i][i] = 1;
  }
  for (int i = 1; i <= n1; i++) {
    for (int j = 1; j <= n2; j++) {
      for (int j1 = 1; j1 <= k1; j1++) {
        dp[i][j][1] += dp1[i][j - 1][j1];
        dp[i][j][1] %= mod;
      }
      for (int j2 = 1; j2 <= k2; j2++) {
        dp1[i][j][1] += dp[i - 1][j][j2];
        dp[i][j][1] %= mod;
      }
      for (int j1 = 2; j1 <= k1; j1++) {
        dp1[i][j][j1] += dp1[i - 1][j][j1 - 1];
        dp[i][j][j1] %= mod;
      }
      for (int j2 = 2; j2 <= k2; j2++) {
        dp[i][j][j2] += dp[i][j - 1][j2 - 1];
        dp[i][j][j2] %= mod;
      }
    }
  }
  long long ans = 0;
  for (int i = 1; i <= k1; i++) {
    ans += dp1[n1][n2][i];
    ans %= mod;
  }
  for (int i = 1; i <= k2; i++) {
    ans += dp[n1][n2][i];
    ans %= mod;
  }
  cout << ans << endl;
}
