상근타워

시간 제한1초메모리 제한128 MB

요약
각 엘리베이터마다 버튼을 정확히 n번 눌러 0층 아래로 내려가지 않으면서 도달할 수 있는 0보다 큰 최소 층수를 구하고, 모든 엘리베이터 중 최솟값을 찾는 문제입니다.
난이도

보통10점 중 5점

유형
동적 계획법, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

상근이는 남은 돈으로 매우 높은 빌딩 “상근타워”를 지었다.

상근타워에는 엘리베이터가 mm개 있다. 각 엘리베이터에는 버튼이 두 개 있다. ii번째 엘리베이터의 한 버튼은 위로 uiu_i층 올라가는 버튼이고, 다른 버튼은 아래로 did_i층 내려가는 버튼이다.

상근타워의 가장 아래층(로비)은 0층이고, 그 위층부터는 1층, 2층과 같이 증가하는 자연수로 번호가 매겨진다. 엘리베이터를 타고 0층보다 아래(지하)로는 내려갈 수 없으며, 건물은 매우 높아 위로는 끝이 없다고 가정한다.

상근이는 로비에 서 있다. 이제 엘리베이터 하나를 골라서 탄다. 한 번 엘리베이터를 타면 다른 엘리베이터로 갈아탈 수 없다. 고른 엘리베이터의 버튼을 정확히 nn번 눌러서 도달할 수 있는 가장 낮은 층(로비 제외)을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 nn과 mm이 주어진다. (1≤n≤1,000,0001 \le n \le 1{,}000{,}000, 1≤m≤2,0001 \le m \le 2{,}000) 다음 mm개 줄에는 각 엘리베이터의 uiu_i와 did_i가 공백으로 구분되어 주어진다. (1≤ui,di≤1,0001 \le u_i, d_i \le 1{,}000)

출력

엘리베이터의 버튼을 정확히 nn번 눌러서 도달할 수 있는 가장 낮은 층을 출력한다. 단, 로비(0층)는 제외한다.

예제4

  1. 예제 1

    입력
    10 3
    15 12
    15 4
    7 12
    
    예상 출력
    13
    
  2. 예제 2

    입력
    1 1
    5 3
    
    예상 출력
    5
    
  3. 예제 3

    입력
    2 1
    1 1
    
    예상 출력
    2
    
  4. 예제 4

    입력
    5 4
    10 3
    2 9
    7 7
    100 1
    
    예상 출력
    7