牛牛是这个赛季的牛王挑战赛的负责人,本赛季一共有 名参赛选手,编号为 ~ ,初始状态下,每个人都在自己对应编号的候场区域,刚刚开始1个候场区域只有1个人,即: 号选手在 号候场区域, 号选手在 号候场区域,以此类推。 挑战赛即将开始,每位选手在自己编号相对应的区域候场,每个候场区域都可以看成是一个队列,如果后续还有人进入,则只能排在队伍末尾。 由于设备出现了些许问题,所以部分候场区域电压不稳,为了选手能够得到更好的休息,牛牛准备发布若干条指令:关闭某候场区域,同时,该候场区域参赛人员按照顺序依次进入另一个仍然开放的候场区域。 中途,牛牛还希望知道部分参赛选手的候场情况,所以在发布指令的同时,还会进行若干个询问:某两名参赛选手是否在同一个候场区域?如果在同一个候场区域,那么他们之间间隔了几名参赛选手?
输入描述:
第一行输入两个正整数 ,代表参赛人数以及牛牛发布的指令、询问总数。接下去  行,每行输入一个字符以及两个正整数 。如果输入的字符是 ,则表示牛牛发出了关闭仍然开启的  号候场区域,同时让  号候场区域的参赛人员(包括a号参赛选手以及有可能有其他候场区域的参数选手)按次序排到仍开启的  号候场区域队尾;如果输入的字符是 ,则表示牛牛发出了一个询问,询问  号和  号参赛选手是否已经在同一个候场区域,如果在,那么他们之间间隔了几名参赛选手。


输出描述:
对于每个询问,如果他们已经在同一个候场区域,那么输出一行一个整数代表他们之间间隔的参赛选手人数;否则直接输出 .
示例1

输入

6 6
C 3 6
C 4 1
Q 1 6
C 1 6
Q 1 6
Q 2 5

输出

-1
1
-1

说明

初始状态下,每个人都在自己对应编号的候场区域,即:\text 1 号选手在 \text 1 号候场区域,\text 2 号选手在 \text 2 号候场区域,以此类推。
\mathit C\ \text 3\ \text 6: \text 3 号候场区域关闭,在 \text 3 号候场区域的参赛选手依次转移到 \text 6 号候场区域,即:\text 6 号候场区域有两名选手,依次是 \text 6 号和 \text 3 号。
\mathit C\ \text 4\ \text 1: 同理,\text 1 号候场区域现在有两名选手,依次是 \text 1 号和 \text 4 号。
\mathit Q\ \text 1\ \text 6: 询问 \text 1 号和 \text 6 号参赛选手,但是他们一个在 \text 1 号候场区域,一个在 \text 6 号候场区域,所以输出 -\text 1
\mathit C\ \text 1\ \text 6: \text 1 号候场区域关闭,在 \text 1 号候场区域的参赛选手依次转移到 \text 6 号候场区域,即:\text 6 号候场区域一共有四名选手,依次是 \text 6 号,\text 3 号,\text 1 号和 \text 4 号。
\mathit Q\ \text 1\ \text 6: 现在 \text 1 号和 \text 6 号都在 \text 6 号候场区域,他们中间间隔了一位选手。
\mathit Q\ \text 2\ \text 5: 询问 \text 2 号和 \text 5 号参赛选手,但是他们一个在 \text 2 号候场区域,一个在 \text 5 号候场区域,所以输出 -\text 1
加载中...