N = gets.to_i A = gets.split(" ").map{|s| s.to_i} f = Array.new(N, 0) g = Array.new(N, 0) 1.upto(N-1) {|i| f[i] = f[i-1] + 1 if A[i-1] <= A[i] g[i] = g[i-1] + 1 if A[i-1] >= A[i] } Q = gets.to_i ans = [] Q.times { l, r = gets.split(" ").map{|s| s.to_i} flr = f[r] - f[l] == r - l ? 1 : 0 glr = g[r] - g[l] == r - l ? 1 : 0 ans << "#{flr} #{glr}" } puts ans