← Home
write a go solution for Description:
We call a function good if its domain of definition is some set of integers and if in case it's defined in x and x-1, f(x)=f(x-1)+1 or f(x)=f(x-1).

Tanya has found n good functions f_1,ldots,f_n, which are defined on all integers from 0 to 10^18 and f_i(0)=0 and f_i(10^18)=L for all i from 1 to n. It's an notorious coincidence that n is a divisor of L.

She suggests Alesya a game. Using one question Alesya can ask Tanya a value of any single function in any single point. To win Alesya must choose integers l_i and r_i (0<=l_i<=r_i<=10^18), such that f_i(r_i)-f_i(l_i)>=qL/n (here f_i(x) means the value of i-th function at point x) for all i such that 1<=i<=n so that for any pair of two functions their segments [l_i,r_i] don't intersect (but may have one common point).

Unfortunately, Tanya doesn't allow to make more than 2*10^5 questions. Help Alesya to win!

It can be proved that it's always possible to choose [l_i,r_i] which satisfy the conditions described above.

It's guaranteed, that Tanya doesn't change functions during the game, i.e. interactor is not adaptive

Input Format:
The first line contains two integers n and L (1<=n<=1000, 1<=L<=10^18, n is a divisor of L)  — number of functions and their value in 10^18.

Output Format:
When you've found needed l_i,r_i, print "!" without quotes on a separate line and then n lines, i-th from them should contain two integers l_i, r_i divided by space.

Note:
In the example Tanya has 5 same functions where f(0)=0, f(1)=1, f(2)=2, f(3)=3, f(4)=4 and all remaining points have value 5.

Alesya must choose two integers for all functions so that difference of values of a function in its points is not less than L/n (what is 1 here) and length of intersection of segments is zero.

One possible way is to choose pairs [0, 1], [1, 2], [2, 3], [3, 4] and [4, 5] for functions 1, 2, 3, 4 and 5 respectively.. Output only the code with no comments, explanation, or additional text.