만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

안전한 여행

시간 제한2초메모리 제한1024 MB

요약
정점 n개와 간선 m개로 시작 정점에서 모든 정점을 방문하고 다시 돌아오는 그래프를 만들거나, 불가능하면 Impossible을 출력합니다.
난이도

쉬움10점 중 3점

유형
그래프, 구현
정답자
아직 제출이 없습니다

문제

리크는 행성 여러 개로 이루어진 우주를 꿈에서 보았다. 일부 행성 사이에는 길이 있고, 두 행성 사이의 길은 최대 하나이다. 각 길은 양방향으로 이동할 수 있다. 리크는 행성 pp에서 여행을 시작하고, 아직 방문하지 않은 행성으로 길을 따라 이동하는 일을 반복한다. 같은 행성을 두 번 방문하지 않는다. 방문하지 않은 행성으로 더 이동할 수 없으면, 현재 행성에서 pp로 길이 있을 때 pp로 돌아간다.

리크는 이 우주가 안전하다는 것을 알아챘다. 이 전략으로 여행하면 항상 nn개의 행성을 모두 방문하고, 출발 행성 pp에서 여행을 끝낸다는 뜻이다.

잠에서 깬 뒤 리크는 어떤 행성끼리 길로 연결되어 있었는지 기억하지 못한다. 기억하는 것은 우주에 행성이 nn개, 길이 mm개 있었다는 사실뿐이다.

행성이 정확히 nn개이고 길이 정확히 mm개인 안전한 우주를 하나 만들거나, 불가능하다고 판단하라.

입력

첫 줄에 행성의 수 nn과 길의 수 mm인 두 자연수가 주어진다. (1<n≤131 < n \le 13, 0≤m≤n⋅(n−1)20 \le m \le \frac{n \cdot (n - 1)}{2})

출력

조건을 만족하는 우주가 존재하면 첫 줄에 Possible을 출력한다. 이어서 mm개의 줄을 출력하며, ii번째 줄에는 길로 연결되는 두 행성의 번호 aia_i와 bib_i(0<ai,bi≤n0 < a_i, b_i \le n)를 공백 한 칸으로 구분해 쓴다. 모든 무순서쌍 {ai,bi}\{a_i, b_i\}는 서로 달라야 한다.

존재하지 않으면 Impossible을 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    
    예상 출력
    Possible
    1 3
    1 2
    2 3
    
  2. 예제 2

    입력
    2 0
    
    예상 출력
    Impossible