Problem:
Score : 200 points

Problem Statement

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.

Sample Input 1

2 2

Sample Output 1

2

We will denote the colors by 0 and 1. There are two possible ways: we can either paint the left ball in color 0 and the right ball in color 1, or paint the left in color 1 and the right in color 0.

Sample Input 2

1 10

Sample Output 2

10

Since there is only one ball, we can use any of the ten colors to paint it. Thus, the answer is ten.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;

#define MAX_N 1005
#define mm(a,b) memset(a,b,sizeof(a))
#define ll long long

int n,k;
ll ans;


int main(){
    while(~scanf("%d %d",&n,&k)){
        ans = 0;
        if(n == 1){
            ans = k;
        }
        else if(n == 2){
            if(k == 1){
                ans = 0;
            }
            else{
                ans = k * (k - 1);
            }
        }
        else {
            if(n % 2 == 1){
                ans = 0;
            }
            else{
                ans = k * pow((k - 1), n - 1);
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}