N, M, P, Q = gets.split.map(&:to_i) QUERIES = [] Q.times.each do QUERIES << gets.split.map(&:to_i) end map = Array.new(N) { |n| Array.new(M) { |m| ((n + 1) * (m + 1)) % P } } QUERIES.each do |x, f| puts map[x - 1].count { |y| y == f } end