RT
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
long long a[1050][1050],b,n,m,ans[1050][1050],w[1050][1050],d[1050][1050];
void fun1()
{
long long c[1050][1050];
long long i,j,k;
memset(c,0,sizeof(c));
for(k=1;k<=2;k++)
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
c[i][j]=(c[i][j]%m+ans[i][k]%m*a[k][j])%m;
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
ans[i][j]=c[i][j]%m;
}
void fun2()
{
long long c[105][105];
long long i,j,k;
memset(c,0,sizeof(c));
for(k=1;k<=2;k++)
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
c[i][j]=(c[i][j]%m+a[i][k]%m*a[k][j])%m;
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
a[i][j]=c[i][j]%m;
}
int main()
{
long long i,j,k,p,q,a1,a2;
cin>>p>>q>>a1>>a2>>n>>m;
a[1][1]=p;
a[1][2]=1;
a[2][1]=q;
a[2][2]=0;
d[1][1]=a2;
d[2][1]=a1;
if(n==1)
{
cout<<a1<<endl;
return 0;
}
if(n==2)
{
cout<<a2<<endl;
return 0;
}
// m=1000000007;
b=n-2;
for(i=1;i<=2;i++)
ans[i][i]=1;
for(i=1;i<=2;i++)
w[i][i]=0;
while(b!=0)
{
if(b&1)
fun1();
fun2();
b>>=1;
}
/* for(i=1;i<=2;i++)
{
for(j=1;j<=2;j++)
cout<<ans[i][j]<<" ";
cout<<endl;
}*/
for(i=1;i<=2;i++)
for(j=1;j<=2;j++)
for(k=1;k<=1;k++)
w[i][k]=(w[i][k]%m+ans[i][j]%m*d[j][k]%m)%m;
cout<<w[1][1]%m<<endl;
return 0;
}