CF1375H Set Merging

Description

You are given a permutation $ a_1, a_2, \dots, a_n $ of numbers from $ 1 $ to $ n $ . Also, you have $ n $ sets $ S_1,S_2,\dots, S_n $ , where $ S_i=\{a_i\} $ . Lastly, you have a variable $ cnt $ , representing the current number of sets. Initially, $ cnt = n $ . We define two kinds of functions on sets: $ f(S)=\min\limits_{u\in S} u $ ; $ g(S)=\max\limits_{u\in S} u $ . You can obtain a new set by merging two sets $ A $ and $ B $ , if they satisfy $ g(A)

Input Format

The first line contains two integers $ n,q $ $ (1\leq n \leq 2^{12},1 \leq q \leq 2^{16}) $ — the length of the permutation and the number of needed sets correspondently. The next line consists of $ n $ integers $ a_1,a_2,\cdots, a_n $ ( $ 1\leq a_i\leq n $ , $ a_i $ are pairwise distinct) — given permutation. $ i $ -th of the next $ q $ lines contains two integers $ l_i,r_i $ $ (1\leq l_i\leq r_i\leq n) $ , describing a requirement of the $ i $ -th set.

Output Format

It is guaranteed that a solution under given constraints exists. The first line should contain one integer $ cnt_E $ $ (n\leq cnt_E\leq 2.2\times 10^6) $ , representing the number of sets after all operations. $ cnt_E-n $ lines must follow, each line should contain two integers $ u $ , $ v $ ( $ 1\leq u, v\leq cnt' $ , where $ cnt' $ is the value of $ cnt $ before this operation), meaning that you choose $ S_u $ , $ S_v $ and perform a merging operation. In an operation, $ g(S_u)

Explanation/Hint

In the first sample: We have $ S_1=\{1\},S_2=\{3\},S_3=\{2\} $ initially. In the first operation, because $ g(S_3)=2