#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
#define FOR(i, a, b) for (int i = a; i <= b; i++)
#define FORD(i, a, b) for (int i = a; i > b; i--)
#define FORu(i, a, b) for (int i = a; i < b; i++)
#define vii vector <int>
#define pb push_back
#define fi first
#define se second
#define sz(a) (int)a.size()
#define all(x) x.begin(), x.end()
#define filei "BAI3.INP"
#define fileo "BAI3.out"
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen(filei, "r"))
{
freopen(filei, "r", stdin);
freopen(fileo, "w", stdout);
}
ll a, b, c, m; cin >> a >> b >> c >> m;
vector <int> p = {a, b, c, m}; sort(p.begin(), p.end(), greater <int> ());
if (p[0] == 0) return cout <<(p[1] % m * p[2] % m) % m, 0;
if (p[1] == 0) return cout << 0, 0;
if (p[2] == 0) return cout << (p[0] % m * p[1] % m) % m, 0;
if (p[0] > 0)
{
if (p[1] > 0) cout << (p[0] % m * p[1] % m) % m;
else cout <<(p[1] % m * p[2] % m) % m;
}
else
{
cout << (p[0] % m * p[1] % m) % m;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgIlxuIgojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyBpKyspCiNkZWZpbmUgRk9SRChpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+IGI7IGktLSkKI2RlZmluZSBGT1J1KGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpIDwgYjsgaSsrKQojZGVmaW5lIHZpaSB2ZWN0b3IgPGludD4gCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGZpbGVpICJCQUkzLklOUCIKI2RlZmluZSBmaWxlbyAiQkFJMy5vdXQiCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oZmlsZWksICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbihmaWxlaSwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihmaWxlbywgInciLCBzdGRvdXQpOwogICAgfQogICAgbGwgYSwgYiwgYywgbTsgY2luID4+IGEgPj4gYiA+PiBjID4+IG07CiAgICB2ZWN0b3IgPGludD4gcCA9IHthLCBiLCBjLCBtfTsgc29ydChwLmJlZ2luKCksIHAuZW5kKCksIGdyZWF0ZXIgPGludD4gKCkpOwogICAgaWYgKHBbMF0gPT0gMCkgcmV0dXJuIGNvdXQgPDwocFsxXSAlIG0gKiBwWzJdICUgbSkgJSBtLCAwOwogICAgaWYgKHBbMV0gPT0gMCkgcmV0dXJuIGNvdXQgPDwgMCwgMDsKICAgIGlmIChwWzJdID09IDApIHJldHVybiBjb3V0IDw8IChwWzBdICUgbSAqIHBbMV0gJSBtKSAlIG0sIDA7CiAgICAKICAgIGlmIChwWzBdID4gMCkKICAgIHsKICAgIAlpZiAocFsxXSA+IDApIGNvdXQgPDwgKHBbMF0gJSBtICogcFsxXSAlIG0pICUgbTsKICAgIAllbHNlIGNvdXQgPDwocFsxXSAlIG0gKiBwWzJdICUgbSkgJSBtOwogICAgfQogICAgZWxzZQogICAgewogICAgCWNvdXQgPDwgKHBbMF0gJSBtICogcFsxXSAlIG0pICUgbTsKICAgIH0KfQ==