rt,好像每次做矩阵都不能一次 A
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,mod,p,q;
struct jz{
ll a[2][2];
}base,x;
inline jz mul(jz x,jz y){
jz z;
memset(z.a,0,sizeof(z.a));
for(int k=0;k<2;k++)
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
z.a[i][j]+=(x.a[i][k]*y.a[k][j]%mod),z.a[i][j]%=mod;
return z;
}
inline jz Pow(jz x,ll y){
jz res=x;
for(y--;y;x=mul(x,x),y>>=1)
if(y&1)
res=mul(res,x);
return res;
}
int main(){
cin>>p>>q>>base.a[0][0]>>base.a[0][1]>>n>>mod;
x.a[0][0]=p,x.a[0][1]=q,x.a[1][0]=1;
if(n==1) return !printf("%lld\n",base.a[0][0]%mod);
base=mul(base,Pow(x,n-1));
printf("%lld\n",base.a[0][0]);
return 0;
}