Problem:
Power

For given integers m and n, compute mn (mod 1,000,000,007). Here, A (mod M) is the remainder when A is divided by M.

Input

m n

Two integers m and n are given in a line.

Output

Print mn (mod 1,000,000,007) in a line.

Constraints

1 ≤ m ≤ 100

1 ≤ n ≤ 109

Sample Input 1

2 3

Sample Output 1

8

Sample Input 2

5 8

Sample Output 2

390625

Solution in C# (judge verdict: Accepted)

using System;

namespace NTL_1_B_Power
{
	class Program
	{
		static void Main ( string[] args )
		{
			int[] input = Array.ConvertAll (Console.ReadLine ().Split (' '), int.Parse);
			var result = Power (input[0], input[1], 1000000007);
			Console.WriteLine (result);
		}

		static long Power ( long num, long power, long mod )
		{
			long result = 1L;

			while (0 < power)
			{
				if ((power & 1) != 0)
				{
					result = result * num % mod;
				}

				num = num * num % mod;
				power >>= 1;
			}

			return result;
		}
	}
}