long long mult(long long A,long long B)
{
long long z = 0;
if (B == 0) return z;
z = mult(A,B >> 1);
z = (z << 1) % Mo;
if (B & 1) z = (z + A) % Mo;
return z;
}
ll mult(ll A,ll B)
{
ll z = 0;
if (B == 0) return z;
z = mult(A,B >> 1);
z = (z << 1) % Mo;
if (B & 1) z = (z + A) % Mo;
return z;
}