def func(x, y)
  mod = 1000000007
  return 1 if  y == 0
  return x % mod if y == 1
  return func(x, y / 2) ** 2 % mod if y % 2 == 0
  return func(x, (y - 1) / 2) ** 2 * x % mod
end

m, n = gets.split(' ').map(&:to_i)
puts func(m,n)

