# 정민이의 수열 제조법

## 문제

정민이는 1부터 N까지 한 개씩 들어있는 수열을 만드는 것을 목표로 한다. 이를 위해 최소 개수의 양의 정수가 들어있는 수열을 준비했고, 목표를 달성할 때까지 다음 작업들을 반복했다.

- 수열에 있는 한 정수를 제곱한 수를 수열에 추가한다.
- 수열에 있는 두 정수를 곱한 수를 수열에 추가한다.

익준이는 모든 작업을 마친 정민이를 보고 어떤 정수들을 가지고 처음 작업을 시작했는지 물었다. 그러자 정민이는 답을 알려주는 대신 익준이가 a와 b를 물어보면 초기 정수 중 a 이상 b 이하인 정수들의 개수를 알려 주겠다고 했다. 익준이는 질문을 총 M번 할 것이다.

익준이의 질문에 답을 해주자.

## 입력

첫 번째 줄에 정수 N,M이 공백으로 구분되어 주어진다. (1≤N≤5 000 000;1≤M≤1 000 000)

두 번째 줄부터 M개의 줄에 정수 a,b가 공백으로 구분되어 주어진다. (1≤a≤b≤N)

## 출력

M개의 줄에 각 질문의 답을 출력한다.

## 힌트

Python 3 사용자는 PyPy3로 제출할 것을 권장한다.

## 예제 입력 1 복사

    50 4
    1 15
    5 6
    20 40
    40 50

## 예제 입력 2 복사

    5000000 5
    2 10
    2 3
    2 5000000
    3 10000
    5 5

## 예제 출력 1 복사

    7
    1
    4
    3

## 예제 출력 2 복사

    4
    2
    348513
    1228
    1