라우터 1

N*N이 P_lim을 넘는지에 따라 내부 노드 하나를 쓰는 별 모양 라우터나 완전 이분 라우터를 출력한다.

쉬움3그래프구현시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

헨리와 헤티는 네트워크 장비 회사에 입사했다. 첫 프로젝트는 새 라우터 Connect Ethernet Operating Interface를 만드는 일이다. 라우터는 다음으로 이루어진다.

  • 입력 노드 NN개. 번호는 11번부터 NN번까지다.
  • 출력 노드 NN개. 번호는 N+1N+1번부터 2N2N번까지다.
  • 내부 노드 KK개. 번호는 2N+12N+1번부터 2N+K2N+K번까지다.
  • 서로 다른 두 노드를 잇는 단방향 직접 연결 MM개.

노드 XX가 노드 YY로 데이터를 보낼 수 있다는 것은, 즉 YYXX에서 데이터를 받을 수 있다는 것은 다음 중 하나가 성립한다는 뜻이다.

  • X=YX = Y이다.
  • XX가 어떤 노드 ZZ로 데이터를 보낼 수 있고, ZZ에서 YY로 가는 직접 연결이 있다.

XXYY로 데이터를 보낼 수 있고 XYX \ne Y이면, XX에서 YY로 가는 데이터 경로는 L2L \ge 2, A1=XA_1 = X, AL=YA_L = Y를 만족하는 직접 연결의 집합 {(A1,A2),(A2,A3),,(AL1,AL)}\{(A_1, A_2), (A_2, A_3), \ldots, (A_{L-1}, A_L)\}이다.

라우터는 다음을 모두 만족할 때 제대로 동작한다.

  • 모든 입력 노드가 모든 출력 노드로 데이터를 보낼 수 있다.
  • 입력 노드는 자기 자신에서만 데이터를 받는다.
  • 출력 노드는 자기 자신으로만 데이터를 보낸다.
  • XYX \ne Y인 두 노드 XX, YY에서 XXYY로 데이터를 보낼 수 있으면, YYXX로 데이터를 보낼 수 없다.
  • XYX \ne Y인 두 노드 XX, YY에서 XXYY로 데이터를 보낼 수 있으면, XX에서 YY로 가는 데이터 경로는 유일하다. 특히 두 노드를 잇는 직접 연결은 많아야 한 개다.

노드 XX를 작동시키는 데 드는 전력은 PX=INX×OUTXP_X = IN_X \times OUT_X다. INXIN_XXX로 데이터를 보낼 수 있는 입력 노드의 개수, OUTXOUT_XXX에서 데이터를 받을 수 있는 출력 노드의 개수다. 전체 노드 수를 Ntot=2N+KN_{tot} = 2N + K라고 하면 라우터의 최대 전력은 Pmax=max(P1,P2,,PNtot)P_{max} = \max(P_1, P_2, \ldots, P_{N_{tot}})다.

NN, MlimM_{lim}, PlimP_{lim}이 주어진다. 제대로 동작하고, 입력 노드와 출력 노드가 각각 NN개이며, 직접 연결을 MlimM_{lim}개 이하로 쓰고, PmaxPlimP_{max} \le P_{lim}이며, 노드를 모두 합쳐 500000500\,000개 이하로 쓰는 라우터를 만들어라. 조건을 만족하는 라우터는 여러 가지라서 출력해야 하는 라우터 하나를 출력 항목에서 정한다.

입력

첫째 줄에 세 정수 NN, MlimM_{lim}, PlimP_{lim}이 공백으로 구분되어 주어진다. NN은 입력 노드와 출력 노드의 개수, MlimM_{lim}은 쓸 수 있는 직접 연결의 최대 개수, PlimP_{lim}은 라우터가 쓸 수 있는 최대 전력이다. (1N10001 \le N \le 1000, 1Mlim1061 \le M_{lim} \le 10^6, 1Plim1061 \le P_{lim} \le 10^6)

NPlimN \le P_{lim}이고, 출력 항목에서 정한 라우터가 직접 연결을 MlimM_{lim}개 이하로 쓰는 입력만 주어진다.

출력

아래 규칙으로 정해지는 라우터를 출력한다.

N×NPlimN \times N \le P_{lim}이면 내부 노드가 하나인 라우터를 출력한다. 이 라우터는 노드가 Ntot=2N+1N_{tot} = 2N + 1개, 직접 연결이 M=2NM = 2N개다. 먼저 i=1,2,,Ni = 1, 2, \ldots, N 순서로 연결 i2N+1i \to 2N+1을 출력하고, 이어서 j=1,2,,Nj = 1, 2, \ldots, N 순서로 연결 2N+1N+j2N+1 \to N+j를 출력한다.

그렇지 않으면 내부 노드가 없는 라우터를 출력한다. 이 라우터는 노드가 Ntot=2NN_{tot} = 2N개, 직접 연결이 M=N×NM = N \times N개다. 모든 (i,j)(i, j) 쌍의 연결 iN+ji \to N+jii가 커지는 순서로, ii가 같으면 jj가 커지는 순서로 출력한다.

첫째 줄에 NtotN_{tot}MM을 공백으로 구분해 출력한다. 이어지는 MM개의 줄에는 각각 두 정수 XXYY를 출력한다. 노드 XX에서 노드 YY로 가는 직접 연결을 만들었다는 뜻이다.