def inf(a, n):
if n == 0:
return 1
elif n == 1:
return a
elif n % 2 != 0:
return a%(10**9+7) * inf(a%(10**9+7), n - 1)
elif n % 2 == 0:
return inf(a%(10**9+7) * a%(10**9+7), n / 2)
n, q = map(int, input().split())
for i in range(q):
c=n
L, R = map(int, input().split())
if L+R>=n:
a="0"
c=0
else:
c-=L
c-=R
a=str(c*"1"+R*"0")
c=inf(2,c)
print(c%(10**9+7), int(a, 2)%(10**9+7))
ZGVmIGluZihhLCBuKToKICAgIGlmIG4gPT0gMDoKICAgICAgICByZXR1cm4gMQogICAgZWxpZiBuID09IDE6CiAgICAgICAgcmV0dXJuIGEKICAgIGVsaWYgbiAlIDIgIT0gMDoKICAgICAgICByZXR1cm4gYSUoMTAqKjkrNykgKiBpbmYoYSUoMTAqKjkrNyksIG4gLSAxKQogICAgZWxpZiBuICUgMiA9PSAwOgogICAgICAgIHJldHVybiBpbmYoYSUoMTAqKjkrNykgKiBhJSgxMCoqOSs3KSwgbiAvIDIpCgpuLCBxID0gbWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKQpmb3IgaSBpbiByYW5nZShxKToKICAgIGM9bgogICAgTCwgUiA9IG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkKICAgIGlmIEwrUj49bjoKICAgICAgICBhPSIwIgogICAgICAgIGM9MAogICAgZWxzZToKICAgICAgICBjLT1MCiAgICAgICAgYy09UgogICAgICAgIGE9c3RyKGMqIjEiK1IqIjAiKQogICAgYz1pbmYoMixjKQogICAgcHJpbnQoYyUoMTAqKjkrNyksIGludChhLCAyKSUoMTAqKjkrNykpCg==