#include <iostream> #include <vector> #include <cassert> using namespace std; int main () { ios::sync_with_stdio (false); cin.tie (0); cout.tie (0); int n, m, p; cin >> n >> m >> p; vector < int > v (n + 1); for (int i = 1; i <= n; ++ i) { cin >> v[i]; } while (m --) { int type; cin >> type; if (type == 1 ) { int i, x; cin >> i >> x; v[i] ^= x; } else { int l, r; cin >> l >> r; long long ans = 0; for (int i = l; i <= r; ++ i) { if (i + p - 1 > n) { break; } int aux = 0; for (int j = i; j <= i + p - 1; ++ j) { aux ^= v[j]; } ans += aux; } cout << ans << '\n'; } } }