#M1. Arrow Array

Arrow Array

Background

语言入门题不是编号为 M1 或类似编号数字小的题,请查看题目编号为 Basic 开头的题目。

Description

一个箭头序列是一个字符串,只有 -> 两种字符构成,满足:

  1. 长度不小于 55.
  2. 第一个字符是 >,最后三个字符也是 >,其他字符全是 -.

例如:>--->>> 是箭头序列,但 >>>->,---->,>->> 不是。

初始的时候,你有一个全为 * 的字符串(设其长度为 nn,字符串下标从 11 开始),你可以对这个字符串进行如下的操作:

  • 选择一个长度不小于 55 的连续子串,将这一段子串用等长的箭头序列覆盖(替换)掉。

例如 ********,对子串 [1,6][1,6] 进行一次操作可以得到 >-->>>**;再对 [3,8][3,8] 操作可以得到 >->-->>>.

给定一个长度为 nn 的只含有 -> 两种字符的字符串 ss,你需要判断能否用不超过 nn 次操作,把全为 * 的字符串变成 ss. 若能,你需要构造出一种实现方案。

Format

Input

本题含有多组测试。第一行输入一个正整数 TT 表示测试数。

随后对于每一组测试,输入一行,含一个字符串,表示 s(1n105)s\,(1\leq n\leq 10^5).

保证所有数据的 ss 的长度和 1n1051\leq \sum n\leq 10^5.

Output

对于每一组数据,先输出一行,仅一个字符串 YesNo(注意大小写),表示是否存在步数不超过 nn 的解。

若有解:则再输出一行,仅一个正整数 mm 表示你构造的方案的操作次数;随后输出 mm 行,每行两个正整数 l,rl,r 表示你对子串 [l,r][l,r] 进行了一次操作。

Samples

3
>->-->>>
>>>>->>>->>->
>->>>>>>>
Yes
2
1 6
3 8
No
Yes
3
1 9
1 6
1 5

Limitation

1s, 256MiB.