*
#include <stdio.h>
int n, a, b, d[1010];
int maxi(int a, int b){
int i,j=a,max=d[a];
for(i=a; i<=b; i++){
if(max<d[i]){
max=d[i];
j=i;
}
}
return j;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d%d", &a, &b);
printf("%d\n", maxi(a, b));
}
*/
/*
#include<stdio.h>
int main(){
int i,j,k,n,a,b,c=0;
int ac[101][101]={0};
scanf("%d", &n);
for(k=1; k<=n; k++){
scanf("%d %d", &a, &b);
for(i=a; i<a+10; i++){
for(j=b; j<b+10; j++){
ac[i][j]=1;
}
}
}
for(i=0; i<100; i++){
for(j=0; j<100; j++){
if(ac[i][j]==1){
c++;
}
}
}
printf("%d", c);
}
*/
/*
#include <stdio.h>
int main()
{
int a=3;
int* p = &a;
printf("a = %d\n",a);
printf("p = %d\n",p);
printf("*p = %d\n",*p);
printf("&a = %d\n",&a);
return 0;
}
*/
/*
#include <stdio.h>
void myswap(int* pa, int* pb){
//int* pa = &a;
int tmp;
if(*pa>*pb){
tmp=*pa;
*pa=*pb;
*pb=tmp;
}
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
myswap(&a, &b);
printf("%d %d", a, b);
}
*/
/*
#include <stdio.h>
void rec(int n)
{
if(n==0) return;
rec(n-1);
printf("%d ",n);
}
main()
{
int n;
scanf("%d", &n);
rec(n);
}
*/
/*
#include<stdio.h>
void rec(int n){
if(n==0) return;
rec(n-1);
printf("%d\n", n);
}
main(){
int n;
scanf("%d", &n);
rec(n);
}
*/
/*
#include<stdio.h>
void rec(int n){
if(n==0) return;
printf("%d\n", n);
rec(n-1);
}
main(){
int n;
scanf("%d", &n);
rec(n);
}
*/
/*
#include<stdio.h>
rec(int a, int b){
if(a%2==1) printf("%d ", a);
if(a==b) return;
rec(a+1, b);
}
main(){
int a, b;
scanf("%d %d", &a ,&b);
rec(a, b);
}
*/
/*
#include<stdio.h>
int j=0;
int rec(int n){
j+=n;
if (n==0) return j;
rec(n-1);
}
int main(){
int n;
scanf("%d", &n);
printf("%d",rec(n));
}
*/
/*
#include<stdio.h>
int j=1;
int rec(int n){
if(n==0) return j;
j*=n;
rec(n-1);
}
int main(){
int n;
scanf("%d", &n);
printf("%d",rec(n));
return 0;
}
*/
/*
#include<stdio.h>
int fib(int n){
if(n==1||n==2) return 1;
else return fib(n-1)+fib(n-2);
}
int main(){
int n;
scanf("%d", &n);
printf("%d", fib(n));
return 0;
}
*/
/*
#include<stdio.h>
int a[201]={0};
int fib(int n){
if(a[n]!=0) return a[n];
if(n==1||n==2) return a[n]=1;
return a[n]=(fib(n-1)+fib(n-2))%10009;
}
int main(){
int n;
scanf("%d", &n);
printf("%d", fib(n));
return 0;
}
*/
/*
#include<stdio.h>
void rec(int n){
if(n/2!=0){
rec(n/2);
printf("%d", n%2);
}
else printf("%d", n%2); return;
}
int main(){
int n;
scanf("%d", &n);
rec(n);
return 0;
}
*/
/*
#include<stdio.h>
void rec(int n){
if(n==1) return;
if(n%2!=0){
return rec(3*n+1);
}else{
retu
}
int main(){
int n;
scanf("%d", &n);
rec(n);
return 0;
}
*/
/*
#include<stdio.h>
void rec(int n)
{
if(n==1)
{
printf("%d\n", n);
return;
}
if (n%2!=0)
{
rec(3*n+1);
printf("%d\n", n);
}
else
{
rec(n/2);
printf("%d\n",n);
}
}
int main()
{
int n;
scanf("%d", &n);
rec(n);
}
*/
/*
#include<stdio.h>
void rec1(int n){
if(n==0) return;
rec1(n-1);
rec2(n);
printf("\n");
}
void rec2(int n){
if(n==0) return;
printf("*");
rec2(n-1);
}
int main(){
int n;
scanf("%d", &n);
rec1(n);
}
*/
#include<stdio.h>
int a[15]= {0};
int SuperSum(int k,int n)
{ int t=0;
int z=0;
if(a[n])
{
return a[n];
}
else
{
for(int i=1; i<n; i++)
{
a[i]+=SuperSum(k-1, i);
}
}
}
int main()
{
int k,n;
while( scanf("%d %d", &k, &n) != EOF )
printf("%d\n", SuperSum(k, n));
}