m, n = gets.split().map(&:to_i)
mod = 10**9 + 7

def modPow(m, n, p)
  return m % p if n == 1
  if n % 2 == 0
    tmp = modPow(m, n/2, p)
    return (tmp * tmp) % p
  else
    return (m * modPow(m, n-1, p)) % p
  end
end

puts modPow(m, n, mod)
