func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MOD = 100 * 1000 * 1000;   int n1, n2, k1, k2;   long long dp[2][101][101];   int solve(int a, int b, int c) {     if (b == 0 || c == 0) {       if (a == 0) {         dp[a][b][c] = (b <= k1);         return dp[a][b][c];       }       dp[a][b][c] = (c <= k2);       return dp[a][b][c];     }     if (dp[a][b][c] != -1) return dp[a][b][c];     long long ret = 0LL;     if (a == 0) {       for (int i = 1; (i <= k1 && i <= b); ++i)         ret = (ret + solve(1, b - i, c)) % MOD;     }     if (a == 1) {       for (int i = 1; (i <= k2 && i <= c); ++i)         ret = (ret + solve(0, b, c - i)) % MOD;     }     dp[a][b][c] = ret;     return dp[a][b][c];   }   int main() {     memset(dp, -1, sizeof(dp));     cin >> n1 >> n2 >> k1 >> k2;     int ans = (solve(0, n1, n2) + solve(1, n1, n2)) % MOD;     cout << ans <<   n ;     return 0;   }   