#include<iostream>#include<cstring>#include<cstdio>#define maxn 21using namespace std;int dp[maxn][maxn][maxn];int n,m;bool init(){ if(scanf("%d%d",&n,&m)!=EOF) { memset(dp,0,sizeof(dp)); return true; } return false;}void solve(){ for(int i=0;i<=n;i++) { for(int j=0;j<=m;j++) { for(int k=0;k<=6;k++) { int &tar=dp[i][j][k]; if(i==0||k==0) { tar=(i==0)&&(j==0)&&(k==0); } else if(i==1||k==1) { tar=(i==1)&&(j==1)&&(k==1); } else { for(int g=0;g<i;g++) { for(int lg=0;lg<=j;lg++) { tar+=dp[g][lg][k-1]*dp[i-1-g][j-lg][k-1]; tar+=dp[g][lg][k-1]*dp[i-1-g][j-lg][k-2]; tar+=dp[g][lg][k-2]*dp[i-1-g][j-lg][k-1]; } } } } } } int ans=0; for(int i=0;i<=6;i++) { ans+=dp[n][m][i]; } cout<<ans<<endl;}int main(){ while(init()) solve(); return 0;}