#include <iostream>
#include <cstring>
#define ll long long
using namespace std;
int n,m;
ll dp[30][30][2],ans;
bool vis[30];
ll DP(int l,int v,int c){
if(dp[l][v][c]!=-1) return dp[l][v][c];
if(l==n) return 1;
ll ret=0;
if(c==1){
for(int i=v+1;i<=n;i++){
if(!vis[i]){
vis[i]=1;
ret+=DP(l+1,i,0);
vis[i]=0;
}
}
}else{
for(int i=v-1;i>=1;i--){
if(!vis[i]){
vis[i]=1;
ret+=DP(l+1,i,1);
vis[i]=0;
}
}
}
return dp[l][v][c]=ret;
}
int main(){
while(cin>>n>>m){
if(n==1&&m==1) {cout<<1<<endl;continue;}
bool check=0;
ans=0;
for(int i=1;i<=m-1;i++){
memset(vis,0,sizeof vis);
vis[m]=1;
memset(dp,-1,sizeof dp);
vis[i]=1;
ans+=DP(2,i,1);
}
if(ans){
cout<<ans<<endl;
continue;
}
for(int i=m+1;i<=n;i++){
memset(vis,0,sizeof vis);
vis[m]=1;
memset(dp,-1,sizeof dp);
vis[i]=1;
ans=DP(2,i,0);
if(ans){
cout<<ans<<endl;
check=1;break;
}
}
if(!check) cout<<0<<endl;
}
return 0;
}