TLE at 6
#include<bits/stdc++.h>
#define int long long
const int N=35;
using namespace std;
int n,m;
int f[N][N];
int dfs(int x,int num){
if(min(abs(x-1),abs(n-x+1))>m-num) return 0;
if(x==1 && num==m) return 1;
if(num==m) return 0;
if(f[x][num]) return f[x][num];
int res=0,l,r;
if(x+1>n) l=1;
else l=x+1;
if(x-1==0) r=n;
else r=x-1;
res+=dfs(l,num+1)+dfs(r,num+1);
f[x][num]=res;
return res;
}
signed main(){
cin>>n>>m;
else cout<<dfs(1,0)<<endl;
return 0;
}