알파카는 번부터 번까지 번호가 매겨진 개의 칸을 관리한다. 처음에는 모든 칸에 정수가 하나씩 들어 있으며, 번 칸의 값은 이다.
알파카는 다음 세 종류의 쿼리를 처리한다.
1: 번 칸의 값을 로 바꾼다. 번 칸이 비어 있다면 를 새로 넣는다.2: 번 칸부터 번 칸까지 들어 있는 값의 최댓값과 최솟값을 곱한 값을 출력한다. 해당 구간의 모든 칸이 비어 있다면 아무것도 출력하지 않는다.3: 번 칸의 값을 삭제하여 빈 칸으로 만든다. 이미 비어 있다면 아무 일도 일어나지 않는다.
값을 삭제해도 다른 값의 번호는 변하지 않는다. 모든 쿼리를 순서대로 처리하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
case case case
각 케이스는 다음과 같은 형식으로 주어진다.
각 쿼리는 다음 중 하나의 형식으로 주어진다.
Output
각 테스트 케이스의 2번 쿼리에 대해, 쿼리 구간에 값이 하나 이상 존재한다면 최댓값과 최솟값을 곱한 값을 한 줄에 하나씩 출력한다.
쿼리 구간의 모든 칸이 비어 있다면 그 쿼리에 대해서는 아무것도 출력하지 않는다.
Constraints
- .
- .
- .
- ().
1번 쿼리에서 이고 이다.2번 쿼리에서 이다.3번 쿼리에서 이다.- 모든 테스트 케이스에 대한 의 합은 이하이다.
- 모든 테스트 케이스에 대한 의 합은 이하이다.
Subtasks
Samples
입력
2
5 7
1 -2 3 4 -5
2 1 5
3 5
2 4 5
3 4
2 4 5
1 5 7
2 3 5
3 4
-1 0 2
2 1 3
3 2
1 2 -3
2 1 2
출력
-20
16
21
-2
3
첫 번째 테스트 케이스의 세 번째 2번 쿼리에서는 번 칸과 번 칸이 모두 비어 있으므로 아무것도 출력하지 않는다.