#include <bits/stdc++.h>
using namespace std;
long long modpow(long long b, long long e, int m) {
  if (!e) return 1 % m;
  if (e & 1) return (b * modpow(b, e - 1, m)) % m;
  long long ret = modpow(b, e >> 1, m);
  return (ret * ret) % m;
}
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  long long count =
      modpow(k, k - 1, 1000000007) * modpow(n - k, n - k, 1000000007);
  count %= 1000000007;
  cout << count << endl;
  return 0;
}
