#include<bits/stdc++.h>
using namespace std;
long long m,n,mod=100003;
long long fast_pow(long long a,long long b,long long n) {
if(b==0) {
return 1%n;
}
long long ans=1;
long long x=fast_pow(a,b/2,n)%n;
ans=((x%n)*(x%n))%n;
if(b%2==1) {
ans=((ans%n)*(a%n))%n;
}
return ans%n;
}
int main() {
cin>>m>>n;
long long k=(fast_pow(m%mod,n%mod,mod)%mod-(m%mod)*(fast_pow((m-1)%mod,(n-1)%mod,mod)%mod)%mod)%mod;
cout<<k%mod;
}
实在看不出来哪里能再了
数据:
.in: 210871 96132421
.out:65081