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 NTL1_B
{

    class Program
    {
        const int mod = 1000000007;

        static void Main(string[] args)
        {
            var t = scan;
            Console.WriteLine(powmod(t[0], t[1], mod));
        }

        static int[] scan { get { return Array.ConvertAll(Console.ReadLine().Split(), int.Parse); } }
        static long powmod(long a, long b, long p)
        {
            if (b == 0) return 1;
            if (b % 2 == 0)
            {
                long d = powmod(a, b / 2, p);
                return (d * d) % p;
            }
            else
            {
                return (a * powmod(a, b - 1, p)) % p;
            }
        }
    }
   
}