def mod_power(m, n, mod)
	return 1 if n.zero?

	m %= mod
	e = n.to_s(2).size - 2

	rslt = m
	e.downto(0) do |i|
		rslt = rslt ** 2 % mod
		rslt = rslt * m % mod unless n[i].zero?
	end

	return rslt
end

p mod_power(*gets.split.map(&:to_i), 1_000_000_007)