# include <cstdio>
# include <iostream>
# define re register int
using namespace std;
inline int gcd (int x,int y){
if(y==0) return x;
else return gcd(y,x%y);
}//欧几里得求最大公约数
inline int quick(int k,int mod){
re a=10,s=1;
//位运算的快速幂
while(k){
if(k&1) s=(s%mod*a%mod)%mod;
a=(a%mod*a%mod)%mod;
k>>=1;
} return s;
}
int main (){
re n,m,k,x;
scanf("%d%d%d%d",&n,&m,&k,&x);
re T=n/gcd(n,m);//周期
re mod=quick(k,T);//去掉重复走之后的步数
for(re i=1;i<=mod;++i){
x=(x+m)%n;//直接取模就好,如果下标是1~n则要先全部减1
}
printf("%d",x); return 0;
}