#include<iostream>
#define int long long
using namespace std;
int factorial(int n)
{
int f=1;
for(int i=2;i<=n;++i)
f=f*i;
return f;
}
int C_factorial(int n, int k)
{
return factorial(n)/factorial(k)/factorial(n-k);
}
int C_rec(int n, int k)
{
if (k==0 || k==n)
return 1;
else
return C_rec(n-1,k-1)+C_rec(n-1,k);
}
int C_dp(int n, int k)
{
int B[n+1][n+1]; // Создаем массив B из n+1 строки
for(int i=0;i<=n;++i) // Заполняем i-ю строку массива
{
B[i][0]=1; // На концах строки стоят единицы
B[i][i]=1;
for(int j=1;j<i;++j)
{ // Заполняем оставшиеся элементы i-й строки
B[i][j]=B[i-1][j-1]+B[i-1][j];
}
}
return B[n][k];
}
main()
{
cout << C_dp(8,6);
}