#include <iostream>
using namespace std;
long long power(long long base, long long exp, long long mod) {
long long res = 1;
base %= mod;
while (exp > 0) {
if (exp % 2 == 1) res = (unsigned __int128)res * base % mod;
base = (unsigned __int128)base * base % mod;
exp /= 2;
}
return res;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long n, m, mod;
if (cin >> n >> m >> mod) {
long long N = n * m;
long long term1 = (N - 1) % mod;
long long p = power(2, N + 2, mod);
long long term2 = (p + mod - (4 % mod)) % mod;
long long ans = (unsigned __int128)term1 * term2 % mod;
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBwb3dlcihsb25nIGxvbmcgYmFzZSwgbG9uZyBsb25nIGV4cCwgbG9uZyBsb25nIG1vZCkgewogICAgbG9uZyBsb25nIHJlcyA9IDE7CiAgICBiYXNlICU9IG1vZDsKICAgIHdoaWxlIChleHAgPiAwKSB7CiAgICAgICAgaWYgKGV4cCAlIDIgPT0gMSkgcmVzID0gKHVuc2lnbmVkIF9faW50MTI4KXJlcyAqIGJhc2UgJSBtb2Q7CiAgICAgICAgYmFzZSA9ICh1bnNpZ25lZCBfX2ludDEyOCliYXNlICogYmFzZSAlIG1vZDsKICAgICAgICBleHAgLz0gMjsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgCiAgICBsb25nIGxvbmcgbiwgbSwgbW9kOwogICAgaWYgKGNpbiA+PiBuID4+IG0gPj4gbW9kKSB7CiAgICAgICAgbG9uZyBsb25nIE4gPSBuICogbTsKICAgICAgICBsb25nIGxvbmcgdGVybTEgPSAoTiAtIDEpICUgbW9kOwogICAgICAgIGxvbmcgbG9uZyBwID0gcG93ZXIoMiwgTiArIDIsIG1vZCk7CiAgICAgICAgbG9uZyBsb25nIHRlcm0yID0gKHAgKyBtb2QgLSAoNCAlIG1vZCkpICUgbW9kOwogICAgICAgIGxvbmcgbG9uZyBhbnMgPSAodW5zaWduZWQgX19pbnQxMjgpdGVybTEgKiB0ZXJtMiAlIG1vZDsKICAgICAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==