long long ksm(long long x,long long y)//求x的y次方
{
    long long ans=1;//初始为1
    while(y)
    {
        if(y&1) ans*=x;//当y大于等于1,ans累计
        x*=x;//处理y在偶数位上的次方操作
//可以看出x = X^y,y 始终是与二进制位置上的权值是相对应的。当二进制位为0时,我们只让x*x使幂指数*2.对应下一个二进制位的权值,当二进制位为1时,ans = ans*x 。则乘上了该乘的X幂次。
        y>>=1;//快速幂模板 除2
    }
    return ans;//返回
}