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
package main

import(
	"fmt"
	"strings"
	"strconv"
	"bufio"
	"os"
)

var (
	sc = bufio.NewScanner(os.Stdin)
	ballNum int
	colorNum int
	patternNum int = 0
)

func setColor(i, prev_color int) {

	if i < ballNum {
		for j := 0; j < colorNum; j++ {
			if j != prev_color {
				setColor(i+1, j)
			}
		}
	} else {
		patternNum++;
	}

}

func scanLine() string {
	sc.Scan()
	return sc.Text()
}

func main() {
	input := strings.Split(scanLine(), " ")
	ballNum, _ = strconv.Atoi(input[0])
	colorNum, _ = strconv.Atoi(input[1])

	setColor(0, 0)

	fmt.Println(patternNum)
}
