#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>usingnamespacestd;
longlong dp [10] [1000] [1010];
int vis [1<<10] , bc [1<<10];
int main () {
int n , K ;
scanf ( "%d%d" , &n , &K ) ;
for (int i = 0; i < (1 << n); i++)
if (!(i & (i << 1))){
vis[i] = true;
int t = i;
while (t){
bc[i] += (t & 1) , t >>= 1;
}
dp[1][bc[i]][i] = 1;
}
for ( int i = 2 ; i <= n ; ++ i )
for ( int j = 0 ; j <= K ; ++ j )
for ( int nw = 0 ; nw < (1<<n) ; ++ nw )
if ( vis [nw] && bc [nw] <= j ){
for ( int lt = 0 ; lt < (1<<n) ; ++ lt ) if ( vis [lt] ){
if ( ((nw>>1)<) || ((nw<<1)<) || (nw & lt) ) continue ;
dp [i] [j] [nw] += dp [i-1] [j-bc[nw]] [lt] ;
}
}
longlong ans = 0 ;
for ( int i = 0 ; i < (1<<n) ; ++ i )
ans += (longlong )dp [n] [K] [i] ;
printf ( "%lld" , ans ) ;
return0 ;
}