만드는 중입니다

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

한 대

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

요약
기술 하나는 공격력 x를 a배 한 뒤 b를 더해 바꾸며, 시작 공격력 x에서 보스 체력 y 이상이 되기까지 필요한 최소 사용 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
그리디, 수학, 이분 탐색
정답자
아직 제출이 없습니다

문제

메이플 스토리에는 블레싱 마하, 하울링처럼 자신의 공격력을 바꾸는 버프 스킬이 있다. 메이플을 20년 넘게 즐긴 고인물 임스는 공격 스킬만 쓰는 메이플에 질렸다. 그래서 위와 같은 버프 스킬을 이용해 자기만의 방식으로 보스를 잡아 보려고 한다.

임스에게는 NN개의 버프 스킬이 있다. ii번째 스킬은 공격력을 aia_i배로 늘린 뒤 bib_i만큼 더한다. bib_i는 음수일 수도 있다. ai=3a_i = 3, bi=5b_i = 5이고 현재 공격력이 xx라면, ii번 스킬을 쓴 뒤의 공격력은 x×3+5x \times 3 + 5가 된다. 스킬은 여러 번 쓸 수 있으며, 쓴 순서대로 적용된다.

임스는 오늘도 QQ개의 던전을 깨려고 한다. 각 던전에는 보스가 있고, 보스마다 체력이 다르다. 보스마다 레벨과 방어율 등도 달라서 임스의 초기 공격력은 상대하는 보스에 따라 다르다.

임스의 공격력이 보스의 체력 이상이 되면 보스를 한 대에 잡을 수 있다. 그렇다면 보스를 한 대에 잡으려면 스킬을 최소 몇 번 써야 할까?

입력

첫째 줄에 스킬의 수 NN과 던전의 수 QQ가 공백으로 구분되어 주어진다. (1≤N,Q≤300 0001 \le N, Q \le 300\,000)

둘째 줄부터 NN개의 줄에 ii번 스킬의 정보인 aia_i, bib_i가 공백으로 구분되어 주어진다. (1≤ai≤1 000 0001 \le a_i \le 1\,000\,000, −109≤bi≤109-10^9 \le b_i \le 10^9)

이후 QQ개의 줄에 ii번째 던전의 초기 공격력 xix_i와 던전 보스의 체력 yiy_i가 주어진다. (1≤xi,yi≤10121 \le x_i, y_i \le 10^{12})

출력

각 던전마다 보스를 한 대에 잡기 위해 사용해야 하는 최소 스킬 사용 횟수를 한 줄에 하나씩 출력한다.

주어진 스킬로 보스를 한 대에 잡을 수 없는 경우 -1을 출력한다.

예제2

  1. 예제 1

    입력
    3 2
    1 8
    2 3
    3 5
    3 14
    1 32
    
    예상 출력
    1
    2
    
  2. 예제 2

    입력
    2 4
    2 -3
    1 0
    6 8
    5 8
    4 8
    3 8
    
    예상 출력
    1
    2
    3
    -1