#include #include #include #include #include #include #include #include typedef long long llong; const int MAXN = 1000000; const int INF = 1e9 + 1; int n; llong a, b, c, d; llong precalc[MAXN]; llong powerTo[MAXN]; unsigned long long power(llong num, unsigned int base) { llong ans = 1; for (int i = 0 ; i < 32 ; ++i) { if (base & (1LL << i)) { ans *= precalc[i]; ans &= (1LL << 32) - 1; } } return ans; } void solve() { precalc[0] = a; for (int j = 1 ; j < 32 ; ++j) { precalc[j] = (precalc[j - 1] * precalc[j - 1]) & ((1LL << 32) - 1); } llong ans = 0; for (int i = 1 ; i <= n ; ++i) { b = (b * c + d) & ((1LL << 32) - 1); ans ^= power(a, b); } std::cout << ans << '\n'; } void read() { std::cin >> a >> b >> c >> d >> n; } void fastIO() { freopen("power.in", "r", stdin); freopen("power.out", "w", stdout); std::ios_base :: sync_with_stdio(0); std::cout.tie(nullptr); std::cin.tie(nullptr); } int main() { fastIO(); read(); solve(); return 0; }