Page not loading? Try clicking here.
Placeholder

#1844

기합 3s 1024MB

Problems

정올 학생들은 모의고사를 풀어야 할 시간에 게임을 한다.

이런 학생들이 눈에 거슬린 정올쌤은 학생들을 운동장에 불러 모아 단체기합을 실시하려고 한다.

먼저 N명의 학생들을 1~N번으로 번호를 매긴 후 왼쪽에서 오른쪽으로 줄을 선다. 

그 후, 정올쌤은 아래 두 명령 중 한 명령을 지시한다.

 

1 X Y : 왼쪽으로부터 X번째에 위치한 학생과 왼쪽으로부터 Y번째에 위치한 학생의 위치를 서로 바꾸어라.

2 A B : 번호가 A 이상 B 이하인 학생들이 서로 이웃해 있는지 대답하여라.

 

하지만 학생들은 게임만 하느라 머리가 퇴화되어 2번째 명령에 대해 제대로 대답하지 못 했다.

당신은 정올쌤이 할 명령이 무엇인지 알고 있으므로, 예상 대답을 구해서 학생들에게 알려주자.


Input

첫 번째 줄에는 학생 수 N과 명령의 수 M이 주어진다. 

두 번째 줄에는 줄에 서 있는 학생의 번호가 왼쪽에서부터 주어진다.

세 번째 줄부터 M개의 줄에는 정올쌤의 명령이 주어지는데, "1 X Y" 또는 "2 A B" 중 하나이다. 

 

[제약조건]

* 2 ≤ N, M ≤ 200,000 

* 1 ≤ X, Y ≤ N, X ≠ Y 

* 1 ≤ A ≤ B ≤ N


Output

"2 A B" 명령에 대하여 한 줄에 하나씩 번호가 A 이상 B 이하인 학생들이 서로 이웃해 있으면 "YES"를 아니면 “NO"를 출력한다.


Example #1

5 3 

2 4 1 3 5
2 2 5
1 3 1
2 2 5
NO

YES

Example #2

7 7

4 7 3 5 1 2 6
2 1 7
1 3 7
2 4 6
2 4 7
2 1 4
1 1 4
2 1 4
YES

NO
YES
NO
YES


Source

COCI 2012/2013 task 3 Snjeguljica

You must sign in to write code.