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;
using System.Collections.Generic;
using System.Linq;

namespace CSharpSample01
{

    
    
    class Program
    {

        const long MOD = 1000000007;

        
        static long Power(long m, long n)
        {
            m %= MOD;
            if (m == 1 || n == 1) return m;

            if(n % 2 == 0)
            {
                return Power(m * m, n / 2);
            }
            else
            {
                return (Power(m * m, (n - 1) / 2) * m) % MOD;
            }
        }



        static void Main(string[] args)
        {
            string[] input = Console.ReadLine().Split(' ');
            int m = int.Parse(input[0]);
            int n = int.Parse(input[1]);

            Console.WriteLine(Power(m, n));
        }
    }
}