#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef vector<long long> vl;
#define pb push_back
#define ff first
#define ss second
#define forn(n) for (ll i = 0; i < n; i++)
#define forc(cn, abc) ((cn).find(abc) != (cn).end())
#define yes cout << "YES\n";
#define no cout << "NO\n";
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define poin(x) cout << fixed << setprecision(x);
vector<ll> dp(35);
ll combination(ll n, ll r)
{
if (n == r)
return 1;
if (r == 1)
return n;
return dp[n] = combination(n - 1, r) + combination(n - 1, r - 1);
}
void solve()
{
ll n, r;
cin >> n >> r;
ll output = combination(n, r);
cout << output << endl;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
ll t = 1;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZpOwp0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsOwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZmIGZpcnN0CiNkZWZpbmUgc3Mgc2Vjb25kCiNkZWZpbmUgZm9ybihuKSBmb3IgKGxsIGkgPSAwOyBpIDwgbjsgaSsrKQojZGVmaW5lIGZvcmMoY24sIGFiYykgKChjbikuZmluZChhYmMpICE9IChjbikuZW5kKCkpCiNkZWZpbmUgeWVzIGNvdXQgPDwgIllFU1xuIjsKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIjsKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgcmFsbChhKSBhLnJiZWdpbigpLCBhLnJlbmQoKQojZGVmaW5lIHBvaW4oeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCk7Cgp2ZWN0b3I8bGw+IGRwKDM1KTsKbGwgY29tYmluYXRpb24obGwgbiwgbGwgcikKewogICAgaWYgKG4gPT0gcikKICAgICAgICByZXR1cm4gMTsKCiAgICBpZiAociA9PSAxKQogICAgICAgIHJldHVybiBuOwoKICAgIHJldHVybiBkcFtuXSA9IGNvbWJpbmF0aW9uKG4gLSAxLCByKSArIGNvbWJpbmF0aW9uKG4gLSAxLCByIC0gMSk7Cn0Kdm9pZCBzb2x2ZSgpCnsKICAgIGxsIG4sIHI7CiAgICBjaW4gPj4gbiA+PiByOwoKICAgIGxsIG91dHB1dCA9IGNvbWJpbmF0aW9uKG4sIHIpOwogICAgY291dCA8PCBvdXRwdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBsbCB0ID0gMTsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=