#include <bits/stdc++.h>
using namespace std;
const long long int M = 1e9 + 7;
const double pi = 3.141592653589793238463;
inline long long int add(long long int x, long long int y) {
  if (x + y >= M) return x + y - M;
  return x + y;
}
inline long long int sub(long long int x, long long int y) {
  if (x - y < 0) return x - y + M;
  return x - y;
}
inline long long int mul(long long int x, long long int y) { return x * y % M; }
bool isPrime(long long int n) {
  for (long long int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
long long int modExp(long long int x, long long int n, long long int M) {
  long long int result = 1;
  while (n > 0) {
    if (n % 2 == 1) result = (result * x) % M;
    x = (x * x) % M;
    n = n / 2;
  }
  return result;
}
long long int fast_exp(long long int x, long long int n) {
  long long int ans = 1;
  while (n) {
    if (n & 1) {
      ans *= x;
      ans %= M;
    }
    n = n >> 1;
    x = (x * x) % M;
  }
  return ans;
}
long long int inverse(long long int x) { return fast_exp(x, M - 2); }
long long int combination(long long int n, long long int r) {
  if (r == 0)
    return 1;
  else {
    long long int ans = n % M;
    ans *= combination(n - 1, r - 1) % M;
    ans %= M;
    ans *= inverse(r) % M;
    ans %= M;
    return ans;
  }
}
long long int ncr(long long int n, long long int r) {
  long long int ans = 1;
  for (long long int i = 0; i < r; i++) ans *= (n - i);
  for (long long int i = 0; i < r; i++) ans /= (r - i);
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  long long int n, k;
  cin >> n >> k;
  long long int a[5] = {1, 0, 1, 2, 9};
  long long int ans = 0;
  for (long long int i = 0; i < k + 1; i++) {
    ans = ans + ncr(n, i) * a[i];
  }
  cout << ans;
  return 0;
}
