축에 평행한 직사각형들의 집합 R이 주어진다. 모든 직사각형은 x축과 y축에 평행하며 서로 겹치지 않는다. 다만 경계선(변)끼리는 맞닿을 수 있다. 모든 직사각형은 x≥0, y≥0인 사분면 안에 놓여 있다.
아래의 COMPACT 절차로 직사각형들을 압축한다. 절차가 끝나면 모든 직사각형의 위치가 고정된다. 이때 모든 직사각형을 포함하는 가장 작은 외접 직사각형을 구하여라. 외접 직사각형 역시 x축과 y축에 평행해야 한다.
do {
Step 1. Move blocks downward until no blocks can be moved.
Step 2. Move blocks leftward until no blocks can be moved.
} Until no blocks can be moved downward or leftward.
절차는 다음과 같이 진행된다. 그림 1은 주어진 직사각형들의 초기 배치이다. 블록을 아래로 최대한 내리면 그림 2와 같은 배치가 된다.

그림 1. 입력 직사각형

그림 2. 블록을 아래로 이동한 후
그림 2에서는 어떤 블록도 더 아래로 내릴 수 없으므로, 블록을 왼쪽으로 이동하여 그림 3을 얻는다. COMPACT를 진행하는 동안 블록들은 항상 서로 겹치지 않아야 하지만, 경계선을 맞대어 붙여 놓는 것은 허용된다. 그림 2의 {E, G, F}, {A, B}, {C, D} 묶음이 경계선을 공유하는 예이다.

그림 3. 블록을 왼쪽으로 이동한 후

그림 4. 블록을 다시 아래로 이동한 후
그림 4처럼 더 이상 어떤 블록도 움직일 수 없을 때까지 절차를 반복하면 그림 5의 최종 압축 배치를 얻는다. 점선으로 표시된 직사각형이 가장 작은 외접 직사각형이다.

그림 5. 어떤 블록도 움직일 수 없을 때까지 COMPACT를 적용하면 가장 작은 외접 직사각형(점선 상자)을 얻는다.
COMPACT로 얻은 최종 외접 직사각형을 구하여라.
입력은 표준 입력으로 주어진다. 입력은 T개의 테스트 케이스로 이루어지며, 첫 줄에 T가 주어진다. 각 테스트 케이스의 첫 줄에는 직사각형의 개수 N (1≤N≤500)이 주어진다. 이어지는 N개의 줄에는 각 직사각형이 왼쪽 아래 꼭짓점 (x,y)와 오른쪽 위 꼭짓점 (p,q)의 정수 좌표로 한 줄에 x y p q 형식으로 주어진다. 이때 x<p, y<q, 0≤x,y,p,q≤100000이다.
출력은 표준 출력으로 한다. 각 테스트 케이스마다 정확히 한 줄에 COMPACT로 얻은 외접 직사각형의 너비 W와 높이 H, 두 수를 출력한다.