#include<bits/stdc++.h>
using namespace std;
int data[10010],sum[10010],f[11][10010][100],cnt,N,K,ans=0;
//行数,该行状态对应编号,至该行国王数
void pre()
{
for(int i=0;i<(1<<N);i++)
{
if(i&(i<<1)) continue;
int k=0;
for(int j=0;j<N;j++)
if((1<<j)&i) k++;
data[++cnt]=i;
sum[cnt]=k;
}
}
int main()
{
cin>>N>>K;
pre();
for(int i=1;i<=cnt;i++)
{
if(K>=sum[i]) f[1][i][sum[i]]=1;
}
for(int i=2;i<=N;i++)//行数
for(int j=1;j<=cnt;j++)//当前行状态编号
for(int k=sum[j];k<=K;k++)//当前行以上总国王数
for(int t=1;t<=cnt;t++)//跑上一行状态编号
{
if(!(data[i]&data[t])&&!(data[t]&(data[i]<<1))&&!(data[t]&(data[i]>>1)))
f[i][j][k]+=f[i-1][t][k-sum[j]];
}
for(int i=1;i<=cnt;i++)
ans+=f[N][i][K];
cout<<ans;
return 0;
}