#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int n, k;
int v[] = {0, 1, 2, 9, 64, 625, 7776, 117649, 2097152};
long long power(long long x, long long y) {
  if (!y) return 1;
  long long t = power(x, y / 2);
  t = t * t % MOD;
  if (y % 2) t = t * x % MOD;
  return t;
}
int main() {
  cin >> n >> k;
  cout << v[k] * power(n - k, n - k) % MOD << endl;
  return 0;
}
