#include<bits/stdc++.h>
#define ll __int128
using namespace std;
ll p;
void mul(ll f[3], ll A[3][3])
{
ll c[3]; memset(c, 0, sizeof(c));
for(int i = 0; i < 3; i ++)
for(int k = 0; k < 3; k ++)
c[i] = (c[i] + f[k] * A[k][i] % p) % p;
memcpy(f, c, sizeof(c));
}
void squ(ll A[3][3])
{
ll c[3][3]; memset(c, 0, sizeof(c));
for(int i = 0; i < 3; i ++)
for(int j = 0; j < 3; j ++)
for(int k = 0; k < 3; k ++)
c[i][j] = (c[i][j] + A[i][k] * A[k][j] % p) % p;
memcpy(A, c, sizeof(c));
}
int main()
{
ll n, a, b, c;
long long nn, aa, bb, cc, pp;
scanf("%lld%lld%lld%lld%lld", &nn, &aa, &bb, &cc, &pp);
n = nn, a = aa, b = bb, c = cc, p = pp;
n --;
ll f[3] = {1, 1, c};
ll A[3][3] = {{a + b, 0, 0}, {b, a + b, 0}, {1, 0, 1}};
for(; n > 0; n >>= 1)
{
if(n & 1) mul(f, A);
squ(A);
}
cout << (long long)f[0];
return 0;
}