#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll x0,x1,a,b,mod;
string n;
struct matrix{
ll a[2][2];
matrix(){
memset(a,0,sizeof a);
}
matrix operator*(const matrix p)const{
matrix res;
for(int i = 0 ; i < 2 ; i++){
for(int j = 0 ; j < 2 ; j++){
for(int k = 0 ; k < 2 ; k++){
res.a[i][j] = (res.a[i][j]+p.a[i][k]*a[k][j])%mod;
}
}
}
return res;
}
}r,mat;
void init(){
/*
|a b||x1| |x2|
|1 0||x0|=|x1|
*/
r.a[0][0] = a , r.a[0][1] = b;
r.a[1][0] = 1 , r.a[1][1] = 0;
mat.a[0][0] = x1;
mat.a[1][0] = x0;
}
matrix qpow(matrix r,ll p){
matrix res;
res.a[0][0] =res.a[1][1] = 1;
while(p){
if(p&1)res=r*res;
r=r*r;
p>>=1;
}
return res;
}
matrix matpow(matrix r,string s){
matrix res;
res.a[0][0] = res.a[1][1] = 1;
int len = s.size();
for(int i = len - 1 ; i >= 0 ; i--){
int t = s[i]-'0';
res = res * qpow(r,t);
r =qpow(r,10);
}
return res;
}
int main(){
cin>>x0>>x1>>a>>b>>n>>mod;
init();
matrix ans = mat*matpow(r,n);
cout<<ans.a[1][0]%mod<<endl;
}