#include<bits/stdc++.h>
using namespace std;
#define int long long
#define debug() puts("I WILL AK")
#define N 100007
#define M 107
int P;
int p,q,a1,a2,n;
struct matrix{
int a[M][M],n,m;
matrix operator *(const matrix &b) const{
matrix r;
r.n=n,r.m=b.m;
for(int i=1;i<=n;++i){
for(int j=1;j<=b.m;++j){
r.a[i][j]=0;
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=b.m;++j){
for(int k=1;k<=m;++k){
r.a[i][j]=(r.a[i][j]+a[i][k]*b.a[k][j])%P;
}
}
}
return r;
}
};
matrix ksm(matrix a,int b){
matrix ans;
ans.n=2,ans.m=2;
ans.a[1][1]=a2,ans.a[1][2]=a1;
while(b){
if(b&1) ans=ans*a;
b>>=1;
a=a*a;
}
return ans;
}
signed main(){
cin>>p>>q>>a1>>a2>>n>>P;
if(n==1){
cout<<a1;
return 0;
}
if(n==2){
cout<<a2;
return 0;
}
matrix a;
a.n=2,a.m=2;
a.a[1][1]=p,a.a[1][2]=q;
a.a[2][1]=1;
a.a[2][2]=0;
cout<<ksm(a,n-2).a[1][1];
return 0;
}