#include<iostream> using namespace std; long long p[32],ten[32]; int main() { //ifstream cin("circle.in"); //ofstream cout("circle.out"); long long n,m,k,x,ans(1),j; cin>>n>>m>>k>>x; p[0]=1; for (int i=1;i<=30;i++) p[i]=p[i-1]*2; ten[0]=10; for (int i=1;i<=30;i++) ten[i]=ten[i-1]*ten[i-1]%n; while (k) { for (j=30;j>=0;j--) if (p[j]<=k) break; ans=ans*ten[j]%n; k-=p[j]; } ans=ans*m%n; ans=(ans+x)%n; cout<<ans<<endl; //system("pause"); return 0; } /************************************************************** Problem: 2324 User: admin Language: C++ Result: Accepted Time:46 ms Memory:2072 kb ****************************************************************/