#include #define rep(i, n) for (lli i = 0; i < (n); i++) #define rrep(i, n) for (lli i = (n)-1; i >= 0; i--) using namespace std; using lli = long long int; bool used[1100000001] = {}; int main() { lli n, m; cin >> n >> m; lli v = 2; used[v] = true; n--; rep(i, m) { v = (v * (v + 4)) % m; if (i == n) { cout << v << endl; return 0; } if (used[v]) { lli vv = 2; rep(k, m) { if (vv == v) { // cout << i << " " << k << endl; lli p = (i + 1 - k); lli ret = (n - k) % p; rep(j, ret + 1) { vv = vv * (vv + 4); vv %= m; } cout << vv << endl; return 0; } vv = vv * (vv + 4); vv %= m; } } } }