Jaś와 Małgosia는 K개의 열과 W개의 행으로 이루어진 직사각형 체스판을 가지고 있습니다 (W≤K). 그런데 이 체스판의 몇몇 칸에는 구멍이 뚫려 있어서 그 칸에는 어떤 말도 놓을 수 없습니다. 구멍은 드릴로 노는 것을 좋아하는 Jaś가 뚫은 것입니다.
Małgosia는 이것이 마음에 들지 않았지만 수학을 잘했기 때문에, 서로 공격하지 않도록(즉 어떤 두 룩도 같은 행이나 같은 열에 놓이지 않도록) 구멍이 없는 칸에만 룩 W개를 놓는 방법의 수를 세어 두었습니다. W≤K이고 행이 정확히 W개이므로, 이는 각 행에 룩을 하나씩 서로 다른 열에 놓는 방법의 수와 같습니다. Małgosia는 그 값을 적어 두고 이따금 값이 바뀌지 않았는지 확인합니다.
Jaś는 포기하지 않습니다. Małgosia가 눈치채지 못하도록, 즉 서로 공격하지 않게 룩 W개를 놓는 방법의 수가 바뀌지 않도록 하면서 구멍을 최대한 많이 더 뚫으려고 합니다. 그래서 구멍을 더 뚫을 수 있는 칸(지금 구멍이 없는 칸)의 최대 개수를 찾는 것을 도와 달라고 합니다.
다음을 수행하는 프로그램을 작성하세요.
첫째 줄에 공백으로 구분된 세 자연수 K, W, P가 주어집니다 (1≤W≤K, 0≤P≤K⋅W≤106). K와 W는 각각 열의 개수와 행의 개수이고, P는 구멍의 개수입니다.
이어지는 P개의 줄에 각 구멍의 위치가 주어집니다. 각 줄에는 공백으로 구분된 두 자연수 x, y가 있으며 (1≤x≤K, 1≤y≤W), 이는 구멍이 있는 칸의 열 번호와 행 번호입니다. 같은 칸은 입력에 정확히 한 번만 나타납니다.
첫째 줄에 구멍을 뚫을 수 있는 칸의 최대 개수 D를 하나의 정수로 출력합니다.
이어지는 D개의 줄에 구멍을 뚫을 수 있는 칸의 좌표를 열 번호 x와 행 번호 y 순서로, 각 줄에 두 정수로 출력합니다. 칸은 먼저 x 좌표를 기준으로, x가 같으면 y 좌표를 기준으로 사전순으로 정렬해 출력합니다. 조건을 만족하는 최대 크기의 칸 집합은 유일하게 결정됩니다.