#M10. Zerosum Division

Zerosum Division

Description

给定一个长度为 nn 的数列 a1na_{1\ldots n},其中 i,ai{1,1}\forall i,a_i\in\{1,-1\}. 这个数列可以被划分为若干个连续段,对于某一段 alra_{l\ldots r},定义这一段的权值为

S=(1)li=lr(1)iaiS = (-1)^l\sum_{i=l}^r (-1)^i a_i

你要将其划分为若干个连续段(请注意是划分而不是选取,换句话说,aa 的每一项都应该恰好属于一个连续段中),使得所有段的权值的和为 00.

若这样的划分方案不存在,输出 DNE.

Format

Input

第一行一个正整数 n(1n106)n\quad(1\leq n\leq 10^6) 表示序列的长度。

第二行 nn 个整数,第 ii 个数表示 ai(ai{1,1})a_i\quad(a_i\in\{-1,1\}).

Output

若无解,输出仅一行一个字符串 DNE.

否则,第一行输出一个正整数 kk,表示你划分的段数。

随后每一行输出两个正整数 li,ril_i,r_i,表示第 ii 段为 ali,ria_{l_i\ldots,r_i}. 输出段的顺序可以任意。

你需要保证数列中每个数恰好被分入了一段,且对于每一段 li,ril_i,r_i1lirin1\leq l_i\leq r_i\leq n.

Samples

6
-1 1 -1 1 -1 1
2
1 3
4 6

Limitation

1s, 256MiB.