#include<bits/stdc++.h>
#define re register
#define int long long
#define fep(i,l,r) for(re int i=l;i<=r;++i)
#define For(i,u) for(re int i=head[u];i;i=e[i].nxt)
#define feb(i,r,l) for(re int i=r;i>=l;--i)
using namespace std;
const int N = 21,M = 11;
int f[N][M][M][5][2],n,t;
//到第i个有j个a[i-1]>a[i]<a[i+1] k个a[i-1]<a[i]>a[i+1]当前位置取 p a[i-1]<a[i]:0,a[i-1]>a[i]:1
inline int read() { int s=0,w=1; char ch=getchar(); while(!(ch<='9'&&ch>='0')) {if(ch=='-') w=-1; ch=getchar();} while(ch<='9'&&ch>='0') {s=(s<<1)+(s<<3)+ch-'0'; ch=getchar();} return s*w; }
inline void write(int x) { if(x>=10) write(x/10); putchar(x%10+'0'); }
inline void print(int x,char ch) { if(x<0) putchar('-'),x=~(x-1); write(x); putchar(ch);}
inline void swap(int &x,int &y) {x=y,y=x,x^=y;}
signed main()
{
n=read(),t=read();
if(n<=2) puts("0"),exit(0);
fep(i,1,4) f[2][0][0][i][0]=i-1,f[2][0][0][i][1]=4-i;
//fep(i,1,4) cout<<f[2][0][0][i][0]<<" "<<f[2][0][0][i][1]<<endl;
fep(i,3,n)
{
fep(j,0,t-1)//a[i-1]>a[i]<a[i+1]
{
fep(k,0,t)//a[i-1]<a[i]>a[i+1]
{
fep(p,1,4)
{
//a[i-1]<a[i]:0,a[i-1]>a[i]:1
fep(q,1,p-1) f[i][j][k][p][0]+=f[i-1][j][k][q][0]+f[i-1][j-1][k][q][1];//a[i-2]>a[i-1]<a[i]
fep(q,p+1,4) f[i][j][k][p][1]+=f[i-1][j][k][q][1]+f[i-1][j][k-1][q][0];//a[i-2]<a[i-1]>a[i]
// cout<<i<<" "<<j<<" "<<k<<" "<<p<<" "<<f[i][j][k][p][0]<<" "<<f[i][j][k][p][1]<<endl;
}
}
}
}
int ans=0;
fep(p,1,4) ans+=f[n][t-1][t][p][0]+f[n][t-1][t][p][1];
print(ans,'\n');
return 0;
}