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# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var input = Utilities.ReadInts().ToArray();
            var n = input[0];
            var k = input[1];
            var result = k * Math.Pow(k - 1, n - 1);
            
            System.Console.WriteLine(result);
        }
    }

    public static class Utilities
    {
        #region Extensions for IO
        public static int ReadInt()
            => ReadInts().First();
        public static IEnumerable<int> ReadInts()
            => ReadStrings().Select(int.Parse);

        public static string ReadString()
            => ReadStrings().First();
        public static IEnumerable<String> ReadStrings()
            => Console.ReadLine().Split(' ');
        #endregion

        #region Extensions of int
        public static bool IsOdd(this int n)
            => !n.IsEven();

        public static bool IsEven(this int n)
            => n % 2 == 0;
        
        public static bool CanDivideWith(this int n, int divisor)
            => n % divisor == 0;
        #endregion

        public static int ToInt(this string str)
            => int.Parse(str);
    }
}