#include <bits/stdc++.h>
using namespace std;
inline void quit() { exit(0); }
long long mpow(long long _x, long long _y, long long _mod) {
  if (_y == 0) return 1;
  if (_y == 1) return _x % _mod;
  if (_y & 1) return (mpow(_x, _y - 1, _mod) * _x) % _mod;
  long long _tmp = mpow(_x, _y >> 1, _mod);
  return (_tmp * _tmp) % _mod;
}
int n, k;
int arr[1000002];
int main() {
  scanf("%d %d", &n, &k);
  if (k == 1) {
    printf("3");
    quit();
  }
  for (int i = 1; i <= n; i++) arr[i] = i;
  for (int i = 2; i <= n; i++) {
    if (arr[i] == i) {
      arr[i] = i - 1;
      for (int j = 2 * i; j <= n; j += i) {
        arr[j] = (arr[j] / i) * (i - 1);
      }
    }
  }
  k += 2;
  sort(arr + 1, arr + n + 1);
  printf("%lld", accumulate(arr + 1, arr + k + 1, 0LL));
}
