/*
矩阵乘法模板
跟斐波那契差不多
就是初始化难理解
静下心来推推式子,然后明确a1,a2是最后才乘上的就好了
*/
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
int n,mod,q,p,a1,a2;
struct node
{
ll m[2][2];
}ans,base;
ll init()
{
ll x=0,f=1;char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return f*x;
}
node mul(node a,node b)
{
node tmp;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
tmp.m[i][j]=0;
for(int k=0;k<2;k++)
tmp.m[i][j]=(tmp.m[i][j]+a.m[i][k]*b.m[k][j])%mod;
}
return tmp;
}
void qw(ll n)
{
while(n)
{
if(n&1) ans=mul(ans,base);
base=mul(base,base);n>>=1;
}
}
int main()
{
p=init();q=init();
a1=init();a2=init();
n=init();mod=init();
ans.m[0][0]=0;ans.m[0][1]=q;
ans.m[1][0]=1;ans.m[1][1]=p;
base.m[0][0]=0;base.m[0][1]=q;
base.m[1][0]=1;base.m[1][1]=p;
n-=2;
qw(n);
printf("%lld\n",(a1*ans.m[0][0]%mod+a2*ans.m[1][0]%mod)%mod);
return 0;
}