There are N balls placed in a row. AtCoDeer the deer is painting each of these in one of the K colors of his paint cans. For aesthetic reasons, any two adjacent balls must be painted in different colors.

Find the number of the possible ways to paint the balls.

Constraints

* 1≦N≦1000
* 2≦K≦1000
* The correct answer is at most 2^{31}-1.

Input

The input is given from Standard Input in the following format:


N K


Output

Print the number of the possible ways to paint the balls.

Examples

Input

2 2


Output

2


Input

1 10


Output

10
#include <bits/stdc++.h>
using namespace std;
template <class T>
T IN() {
  T d;
  cin >> d;
  return d;
}
long long gcd(long long a, long long b) { return (b > 0) ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
bool uruu(long long Y) {
  return (((Y % 4 == 0 && Y % 100 != 0) || Y % 400 == 0) ? true : false);
}
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  ;
  bool dbgF = true;
  int N, K;
  long long ans = 0;
  cin >> N >> K;
  for (int i = (0); i < (K); i++) {
    if (i == 0) {
      ans = K;
    } else {
      ans *= K - 1;
    }
  }
  cout << ans << endl;
  return 0;
}
