#include <stdio.h> int P( int i , int p , int n , int a[] ) { int result = 0 ; if( i + p - 1 <= n ) { for( int j = i ; j <= i + p - 1 ; ++j ) { result ^= a[j] ; } } return result ; } int main( void ) { int n , m , p ; scanf( "%d %d %d" , &n , &m , &p ); int array[n + 1] ; for( int i = 1 ; i <= n ; ++i ) scanf( "%d" , &array[i] ); int choice ; int i , x , l , r ; while( m-- ) { scanf( "%d" , &choice ); if( choice == 1 ) { scanf( "%d %d" , &i , &x ); array[i] ^= x ; } else { scanf( "%d %d" , &l , &r ); int result = 0; for( int i = l ; i <= r ; ++i ) result += P( i , p , n , array ) ; printf( "%d\n" , result ); } } }