N, Q = gets.split(" ").map{|s| s.to_i} a = gets.split(" ").map{|s| s.to_i} q = [] Q.times { q << gets.split(" ").map{|s| s.to_i} } sx = Array.new(N+1, 0) 0.upto(N-1) {|i| sx[i+1] = sx[i] ^ a[i] } q.each {|l, r| puts sx[l-1] ^ sx[r] }