#include <bits/stdc++.h>
using namespace std;
int dp[401][401][401];
int solve(int z , int o , int l , int lz ,int lo ,int i)
{
if(z==0 && o==0)
{
return 1;
}
if(dp[lz][lo][i] != -1)
return dp[lz][lo][i];
int ans = 0;
if(z>0 && i-lo+1 <= l)
{
ans = solve(z-1 , o , l , i , lo , i+1);
}
if(o>0 && i-lz+1 <= l)
{
ans+= solve(z , o-1 , l , lz , i , i+1);
}
return dp[lz][lo][i] = ans;
}
int numberOfStableArrays(int z, int o, int l) {
memset(dp , -1 , sizeof(dp));
return solve(z , o , l+1 , 0 , 0 , 0 );
}
int main() {
cout<<numberOfStableArrays(3,3,2);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBkcFs0MDFdWzQwMV1bNDAxXTsKaW50IHNvbHZlKGludCB6ICwgaW50IG8gLCBpbnQgbCAsIGludCBseiAsaW50IGxvICxpbnQgaSkKewogICAgaWYoej09MCAmJiBvPT0wKQogICAgewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgCiAgICBpZihkcFtsel1bbG9dW2ldICE9IC0xKQogICAgICAgIHJldHVybiBkcFtsel1bbG9dW2ldOwogICAgaW50IGFucyA9IDA7CiAgICBpZih6PjAgJiYgaS1sbysxIDw9IGwpCiAgICB7CiAgICAgICAgYW5zID0gc29sdmUoei0xICwgbyAsIGwgLCBpICwgbG8gLCBpKzEpOwogICAgfQogICAgaWYobz4wICYmIGktbHorMSA8PSBsKQogICAgewogICAgICAgIGFucys9IHNvbHZlKHogLCBvLTEgLCBsICwgbHogLCBpICwgaSsxKTsKICAgIH0KICAgIAogICAgcmV0dXJuIGRwW2x6XVtsb11baV0gPSBhbnM7Cn0KaW50IG51bWJlck9mU3RhYmxlQXJyYXlzKGludCB6LCBpbnQgbywgaW50IGwpIHsKICAgIG1lbXNldChkcCAsIC0xICwgc2l6ZW9mKGRwKSk7CiAgICByZXR1cm4gc29sdmUoeiAsIG8gLCBsKzEgLCAwICAsIDAgLCAwICk7Cn0KaW50IG1haW4oKSB7Cgljb3V0PDxudW1iZXJPZlN0YWJsZUFycmF5cygzLDMsMik7CglyZXR1cm4gMDsKfQ==