aa 种馅,bb 种皮,也就是说每一种元宵有 a×ba\times b 种设计方法。

一共有 cc 个桌子 dd 个碗,所以有 c×dc\times d 个碗可以放元宵。

每个碗有 a×ba\times b 种方法,所以这 c×dc\times d 个碗:

(a×b)×(a×b)××(a×b)(a\times b)\times(a\times b)\times\cdots\times(a\times b)

一共是 (a×b)(c×d)(a\times b)^{(c\times d)} 种摆法,快速幂处理即可。

#include<cstdio>
#define int __int128
int init(){
	char c = getchar();
	int x = 0, f = 1;
	for (; c < '0' || c > '9'; c = getchar())
		if (c == '-') f = -1;
	for (; c >= '0' && c <= '9'; c = getchar())
		x = (x << 1) + (x << 3) + (c ^ 48);
	return x * f;
}
void print(int x){
	if (x < 0) x = -x, putchar('-');
	if (x > 9) print(x / 10);
	putchar(x % 10 + '0');
}
int Mod;
int quick_mod(int x, int y){
    x %= Mod;
    int s = 1;
    while (y) {
        if (y & 1) s = s * x % Mod;
        x = x * x % Mod; y >>= 1;
    }
    return s;
}
signed main(){
    int a = init(), b = init(), c = init(), d = init(); Mod = init();
    a %= Mod, b %= Mod;
    if (a == 0 || b == 0) print(0), putchar('\n');
    else print(quick_mod(a * b, c * d)), putchar('\n');
}