소수 집합 노트

모든 유한한 서로 다른 소수 집합을 원소 합 오름차순, 같은 합끼리는 사전순으로 나열한 노트북에서 a번째부터 b번째 문자를 출력한다.

보통6정수론조합론구현수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

리디아는 소수로 이루어진 집합을 좋아한다. 심심할 때마다 아주 긴 소수 집합 노트에 그런 집합을 하나씩 적어 나간다.

한 집합의 원소는 오름차순으로 적는다. 서로 다른 소수로 이루어진 공집합이 아닌 유한 집합은 모두 언젠가 노트에 등장한다. 원소의 합이 작은 집합이 합이 큰 집합보다 먼저 나온다. 합이 같은 집합끼리는 사전순 오름차순으로 놓는다. 즉 첫 원소를 비교하고, 첫 원소가 같으면 둘째 원소를 비교하는 식이다.

누가 노트를 프로그램으로 읽을지도 모르니 리디아는 각 집합을 기계가 읽을 수 있는 JSON 형식으로 적고, 쉼표 뒤에는 공백을 하나 넣는다. 집합은 차례대로 이어 붙이며, 집합 하나가 끝날 때마다 쉼표와 공백을 하나씩 붙인다. 노트의 앞부분은 다음과 같다.

[2], [3], [2, 3], [5], [2, 5], [7], [3, 5], [2, 7], [2, 3, 5], [3, 7], [11], [2, 3, 7], [5, 7], [2, 11], [13], [2, 5, 7],

리디아는 자기가 적은 내용을 확인하고 싶다. 정수 aabb가 주어지면 노트의 aa번째 문자부터 bb번째 문자까지를 출력하면 된다. 문자의 위치는 1부터 센다.

입력

첫째 줄에 정수 aabb가 주어진다. (1ab10181 \le a \le b \le 10^{18}, ba105b - a \le 10^5)

출력

문제에서 설명한 노트의 aa번째 문자부터 bb번째 문자까지를 한 줄에 출력한다. 앞뒤에 오는 공백까지 그대로 포함해 정확히 ba+1b - a + 1개의 문자를 출력해야 한다.