Setsuna的K数列
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int N=1000,mod=1e9+7;
typedef long long LL;
int main()
{
int n,k;
cin>>n>>k;
int sum=0,a=1;
while(n)
{
if(n&1) sum=(sum+a)%mod;
a=a*(LL)k%mod;
n>>=1;
}
cout<<sum<<endl;
return 0;
}