/*
#include <stdio.h>
void s(int n,int k) //십진수 n을 k진수로 바꿔요
{
if(n/k==0){
if(n%k>=10){
printf("%c",n+55);
return;
}
printf("%d",n%k);
return ;
}
s(n/k,k);
if(n%k>=10){
printf("%c",n%k+55);
}
else{
printf("%d",n%k);
}
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
s(n,k);
}
#include <stdio.h>
int arr[51][51]={};
int f(int r,int c)
{
if(arr[r][c]!=0){
return arr[r][c];
}
if(r==1||c==1){
return 1;
}
return arr[r][c]=(f(r-1,c)+f(r,c-1))%100000000;
}
int main()
{
int r,c;
scanf("%d",&r,&c);
printf("%d",f(r,c));
return 0;
}
#include <stdio.h>
int arr[201]={};
int f(int n)
{
if(arr[n]!=0){
return arr[n];
}
if(n==1||n==2){
return 1;
}
return arr[n]=(f(n-1)+f(n-2))%10009;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
#include <stdio.h>
int f(int n)
{
if(n==1){
return 1 ;
}
if(n%2==1){
n=n*3+1;
}
else{
n=n/2;
}
return f(n)+1;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
#include <stdio.h>
int f(int n)
{
if(n==1){
return 1;
}
if(n==2){
return 2;
}
if(n==3){
return 4;
}
return (f(n-1)+f(n-2)+f(n-3));
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
*/
#include <stdio.h>
int arr[26][26]={};
int r=1,c=1;
int p(int r,int c)
{
if(arr[r][c]!=0){
return arr[r][c];
}
if(r==1||c==1){
return 1;
}
return arr[r][c]=(f(r-1,c)+f(r,c-1));
}
void s(int n)
{
r=n;
if(n<1){
return ;
}
s(n-1);
printf("%d ",p(r,c));
}
void f(int n)
{
if(n==0){
return ;
}
f(n-1);
s(n);
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}