涂色
题号:NC219657
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有n个气球排成一排,你的任务是用m种颜色对气球涂色,使得气球颜色满足以下条件:
每个气球的颜色与该气球左边、右边、左边的左边、右边的右边的气球颜色不同。
问有多少种涂色方法?

由于涂色方案数太多,你只需要输出答案为1e9+7取模的结果即可。

输入描述:

一行给出两个整数,分别为n和m,表示气球的数量和你拥有的颜色数量。
(1<=n<=1e18,1<=m<=1e18)

输出描述:

输出涂色方案数,答案对1e9+7取模。
示例1

输入

复制
2 2

输出

复制
2

说明

涂色方式有两种:AB和BA