다다스는 다음 쿼리를 한 번당 에 처리하는 코드를 작성했다. 여러분도 해 보자.
현재 수열을 이라 하자. 수열에 값 가 존재할 때, 를 만족하는 유일한 위치를 라 정의한다.
두 정수 가 주어지는 쿼리는 다음과 같이 처리한다.
- 현재 수열에 와 가 모두 존재하며, 임이 보장된다.
- 구간 의 원소에 각각 을 곱한 뒤, 이 구간의 순서를 뒤집는다.
즉, 쿼리 직전의 해당 구간이
였다면, 쿼리 직후에는
가 된다.
초기 수열은 이다. 개의 쿼리를 모두 처리한 뒤의 수열을 구하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
case case case
각 케이스는 다음과 같은 형식으로 주어진다.
번 쿼리는 두 정수 로 주어진다. 각 쿼리는 그 직전의 현재 수열에 대해 문제의 보장 조건을 만족한다.
Output
각 테스트 케이스마다, 모든 쿼리를 처리한 뒤의 수열을 한 줄에 출력한다. 수열의 원소는 공백으로 구분한다.
Constraints
- .
- .
- .
- ().
- 이고 이다 ().
- 번 쿼리 직전에 현재 수열에 가 모두 존재하며, 이다 ().
- 모든 테스트 케이스에 대한 의 합은 이하이다.
- 모든 테스트 케이스에 대한 의 합은 이하이다.
Subtasks
Samples
입력
2
5 3
2 4
-4 -2
3 3
4 2
1 4
-3 -1
출력
1 2 -3 4 5
-4 1 2 3
첫 번째 테스트 케이스에서 첫 쿼리 후 수열은 가 된다. 두 번째 쿼리 후에는 다시 가 되고, 마지막 쿼리 후에는 가 된다.