#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
const int N=2e5+2;
#define int long long
 int n,m,f1[50][2000] ,f2[50][2000];
 
 void sov(){
 	memset(f1,0,sizeof f1);memset(f2,0,sizeof f2);
 	f1[0][0]=f2[1][0]=1;
    int i,j;
    
    for(i=1;i<=n;i++){
    	 int len =(i+1)/2*2-1;
    	 f1[i][0]=f1[i-1][0] ;
	     for(j=1;j<=m&&j<=len;j++)
	    	f1[i][j]=f1[i-1][j]+(len-j+1)*f1[i-1][j-1];
	}     
    
    for(i=2;i<=n;i++){
    	int len =i/2*2 ;
    	f2[i][0]=f2[i-1][0];
	     for(j=1;j<=m&&j<=len;j++)
	    	f2[i][j]=f2[i-1][j]+(len-j+1)*f2[i-1][j-1];	   
	}       
	int ans=0;
	for(i=0;i<=m;i++) ans+=f1[n][i]*f2[n][m-i];
	cout<<ans<<endl;
 }
 signed main(){
   while(cin>>n>>m,n||m) sov();
 }
 
 

 

posted on 2023-04-20 22:04  towboat  阅读(13)  评论(0)    收藏  举报