#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; ll n, m; ll a[2000000]; map mp; int main(void){ cin >> n >> m; for (int i = 0; i <= 1000000; i++) a[i] = -1; a[0] = (2 * (2 + 4)) % m; mp[a[0]] = 1; ll cnt = 1; for (int i = 1; i <= 1400000; i++){ a[i] = (a[i - 1] * (a[i - 1] + 4)) % m; if (mp[a[i]] == 1) break; mp[a[i]] = 1; cnt++; } if (n%cnt == 0) cout << a[0] << endl; else cout << a[n%cnt - 1] << endl; }