#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = (int)13;
ll mod_pow(ll x, ll n, ll mod){
if(n==0) return 1;
ll rtn = mod_pow(x * x % mod, n / 2, mod);
if(n & 1) rtn = rtn * x % mod;
return rtn;
}
ll divmod(ll x, ll y, ll mod){ return ( x * mod_pow(y, mod-2, mod)) % mod; }
//ブルートフォース
ll bf2(int p, int q, int r, int n){
ll a = p;
for(int i=1;i<=n;i++){
a = (q*a+r)%mod;
}
return a%mod;
}
//数列の差分が等比数列なので、等比数列の和から第n項を求める
ll cl(int p, int q, int r, ll n){
p%=mod;q%=mod;r%=mod;
//if(n==0) return p%mod;
if(q%mod==1) return (r*n + p)%mod;
ll a = (p * q + r - p + mod);
ll sm = a*( mod_pow(q, n, mod) -1 + mod ) ;
sm = divmod(sm, q-1 , mod) + mod ;
return ( sm + p +mod)%mod;
}
//周期を求めて、剰余で解答(これがbestだった)
ll clz(int p, int q, int r, ll n){
if(n==0) return p%mod;
int a=p, num=0;
vector<int> lp;
for(num=0; ; num++){
a = (a*q + r)%mod;
if(any_of(lp.begin(),lp.end(),[a](int x){return x==a;})) break;
lp.push_back(a);
}
return lp[(n-1)%num];
}
int main(){
int p,q,r; ll n;
while(cin >>p >>q >>r >>n){
printf("%2d %2d %2d %lld ==> %lld\n", p, q,r,n,cl(p,q,r,n));
}
int wct=0;
mt19937 mrt(114568);
//周期と等比数列でランダムチェック 100万
for(int i=0; i<1000000; i++){
p=mrt()%99;q=mrt()%99;r=mrt()%99;n=mrt()%999999999;
ll z=cl(p,q,r,n), zz=clz(p,q,r,n);
if(z!=zz){
wct++;
printf("%2d %2d %2d %lld ==> %lld %lld\n", p, q,r,n,z,zz);
}
}
}
/*
1 2 0 8
1 0 99 0
1 2 3 2
1 3 5 10000000000
66 23 45 23456
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgaW50IG1vZCA9IChpbnQpMTM7CgoKbGwgbW9kX3BvdyhsbCB4LCBsbCBuLCBsbCBtb2QpewoJaWYobj09MCkgcmV0dXJuIDE7CglsbCBydG4gPSBtb2RfcG93KHggKiB4ICUgbW9kLCBuIC8gMiwgbW9kKTsKCWlmKG4gJiAxKSBydG4gPSBydG4gKiB4ICUgbW9kOwoJcmV0dXJuIHJ0bjsKfQoKbGwgZGl2bW9kKGxsIHgsIGxsIHksIGxsIG1vZCl7IHJldHVybiAoIHggKiBtb2RfcG93KHksIG1vZC0yLCBtb2QpKSAlIG1vZDsgfQoKLy/jg5bjg6vjg7zjg4jjg5Xjgqnjg7zjgrkKbGwgYmYyKGludCBwLCBpbnQgcSwgaW50IHIsIGludCBuKXsKCWxsIGEgPSBwOwoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJIGEgPSAocSphK3IpJW1vZDsKCX0KCXJldHVybiBhJW1vZDsKfQovL+aVsOWIl+OBruW3ruWIhuOBjOetieavlOaVsOWIl+OBquOBruOBp+OAgeetieavlOaVsOWIl+OBruWSjOOBi+OCieesrG7poIXjgpLmsYLjgoHjgosKbGwgY2woaW50IHAsIGludCBxLCBpbnQgciwgbGwgbil7CglwJT1tb2Q7cSU9bW9kO3IlPW1vZDsKCS8vaWYobj09MCkgcmV0dXJuIHAlbW9kOwoJCglpZihxJW1vZD09MSkgcmV0dXJuIChyKm4gKyBwKSVtb2Q7CglsbCBhID0gKHAgKiBxICsgciAtIHAgKyBtb2QpOwoJbGwgc20gPSAgYSooIG1vZF9wb3cocSwgbiwgbW9kKSAtMSArIG1vZCApIDsKCXNtID0gZGl2bW9kKHNtLCBxLTEgLCBtb2QpICsgbW9kIDsKCXJldHVybiAoIHNtICsgcCArbW9kKSVtb2Q7Cn0KLy/lkajmnJ/jgpLmsYLjgoHjgabjgIHlibDkvZnjgafop6PnrZQo44GT44KM44GMYmVzdOOBoOOBo+OBnykKbGwgY2x6KGludCBwLCBpbnQgcSwgaW50IHIsIGxsIG4pewoJaWYobj09MCkgcmV0dXJuIHAlbW9kOwoJaW50IGE9cCwgbnVtPTA7Cgl2ZWN0b3I8aW50PiBscDsKCWZvcihudW09MDsgOyBudW0rKyl7CgkJYSA9IChhKnEgKyByKSVtb2Q7CgkJaWYoYW55X29mKGxwLmJlZ2luKCksbHAuZW5kKCksW2FdKGludCB4KXtyZXR1cm4geD09YTt9KSkgYnJlYWs7CgkJbHAucHVzaF9iYWNrKGEpOwoJfQoJcmV0dXJuIGxwWyhuLTEpJW51bV07Cn0KCgppbnQgbWFpbigpewoJCglpbnQgcCxxLHI7IGxsIG47Cgl3aGlsZShjaW4gPj5wID4+cSA+PnIgPj5uKXsKCQlwcmludGYoIiUyZCAlMmQgJTJkICVsbGQgPT0+ICVsbGRcbiIsIHAsIHEscixuLGNsKHAscSxyLG4pKTsKCX0KCWludCB3Y3Q9MDsKCW10MTk5MzcgbXJ0KDExNDU2OCk7CgkvL+WRqOacn+OBqOetieavlOaVsOWIl+OBp+ODqeODs+ODgOODoOODgeOCp+ODg+OCryAxMDDkuIcKCWZvcihpbnQgaT0wOyBpPDEwMDAwMDA7IGkrKyl7CgkJcD1tcnQoKSU5OTtxPW1ydCgpJTk5O3I9bXJ0KCklOTk7bj1tcnQoKSU5OTk5OTk5OTk7CgkJbGwgej1jbChwLHEscixuKSwgeno9Y2x6KHAscSxyLG4pOwoJCWlmKHohPXp6KXsKCQkJd2N0Kys7CgkJCXByaW50ZigiJTJkICUyZCAlMmQgJWxsZCA9PT4gJWxsZCAgJWxsZFxuIiwgIHAsIHEscixuLHosenopOwoJCX0KCX0JCgp9Ci8qCjEgMiAwIDgKMSAwIDk5IDAKMSAyIDMgMgoxIDMgNSAxMDAwMDAwMDAwMAo2NiAyMyA0NSAyMzQ1NgoKKi8KCg==