• Language:
  • Time limit: 2.00 s
  • Memory limit: 512 MB

You are given an array x_1,x_2,\dots,x_n of n integers. Your task is to answer q queries (a, b). In one operation, you are allowed to do one of the following:

  • sort the first a numbers in nondecreasing order, or
  • sort the last b numbers in nondecreasing order.

What is the minimum number of operations needed to sort the whole array in nondecreasing order? In each query, the array starts from the initial values x_1,x_2,\dots,x_n.

Input

The first line contains two integers n and q: the length of the array and the number of queries.

The second line contains n integers x_1,x_2,\dots,x_n: the contents of the array.

The next q lines describe the queries. Each line contains two integers a and b.

Output

Print q lines with the answers to each query. If it is impossible to sort the array, print "-1".

Constraints

  • 1 \le n,q \le 2 \cdot 10^5
  • 1 \le x_i \le 10^9
  • 1 \le a,b \le n in all queries

Example

Input:

6 3
3 1 4 1 5 9
4 1
3 3
2 5

Output:

1
-1
2

Explanation: In the first query, the array can be sorted in one operation by sorting the first 4 numbers.

The array cannot be sorted with the available operations in the second query.

In the third query, the array can be sorted in two operations: start by sorting the first 2 numbers and then sort the last 5 numbers.

Scoring

SubtaskConstraintsPoints
1n,q\le 10 and a+b\le n in all queries6
2n,q \le 105
3a+b \le n in all queries7
41 \le x_i \le 214
5n,q \le 5000 and the array is a permutation of the numbers 1,2,\dots,n23
6n,q \le 500012
7No additional constraints33