编程题
### 问题描述
假设有 $N$ 个人是一支团队,他们要在一个圆形场地上完成一项任务(第 $i$ 个人和第 $n$ 个人相邻)。每个人都有一个编号和一个任务编号,这些任务编号在 $0$ 到 $M-1$ 的范围内。为了完成任务,每个人需要完成与其任务编号相对应的任务。然而,如果相邻两个人的任务编号相同,他们会互相干扰,导致任务失败。
因此,为了保证任务的成功,他们需要找到一种分配任务的方案,使得相邻两个人的任务编号不相同。现在需要计算有多少种满足这个条件的任务分配方案。因为答案可能很大,所以你需要将答案对 $10^9+7$ 取模输出。
### 输出格式
输入一行,包括两个整数 $n$ 和 $m$,含义与题意一致。
数据范围保证:$1 \leq n,m \leq 10^6$。
### 样例输入
```text
3 3
```
### 样例输出
```text
6
```
### 说明
对于样例,符合条件的安排方式有 $(0,1,2)$,$(0,2,1)$,$(1,0,2)$,$(1,2,0)$,$(2,0,1)$,$(2,1,0)$ 总共六种。