小慕有一个长度为n的,他可以选择两个位置,然后交换这两个位置上的数。 他想知道能否通过,使得存在一个,是长度为k的排列。 排列是指一个长度为len的整数数组,数组中包含1到len的每个数,且每个数只出现一次。
提示:带虚线的词点一下有通俗解释。
输入描述
第一行两个整数n,k,表示排列长度和连续子段长度。 第二行n个整数a1, a2, ..., an,表示排列。 1 <= k <= n <= 10^5
输出描述
如果能够通过最多一次交换,存在一个连续子段是排列,输出YES,并输出交换的位置:先输出一个整数x (0 <= x <= 1),然后输出x行,每行两个整数u, v,表示交换位置u, v (u < v) 否则输出NO。
示例
示例 1
输入
5 3 1 2 3 4 5
输出
YES 0
时间限制 1000 ms · 内存限制 128 MB