import math
def npow(A, n, verbose=False):
if n == 0:
return 1
if n == 1:
return A
e = math.floor(n / 2)
m = npow(A, e)
if (verbose):
print("A:" + str(A))
print("n:" + str(n))
print("e:" + str(e))
print("m:" + str(m))
print("================")
return m * m if n % 2 == 0 else m * m * A