int x=a, r=1; while (p) { if (p&1) { r *= x; } p >>= 1; x *= x; } return r;
if (p&1) { r *= x; } p >>= 1; x *= x;
r *= x;
Birthday(s):