等差数列
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)
在这个问题中a是一个非负的整数,b是正整数。
写一个程序来找出在双平方数集合S中长度为n的等差数列。
双平方数集合是所有能表示成p2+q2的数的集合。

输入描述:

第一行:N(3<=N<=25),要找的等差数列的长度。
第二行:M(1<=M<=250),搜索双平方数的上界0 <= p,q <=M。

输出描述:

如果没有找到数列,输出`NONE'。
如果找到了,输出一行或多行,
每行由于二个整数组成:a,b
这些行应该先按b排序再按a排序。
将不会有只多于10,000个等差数列。
示例1

输入

复制
5
7

输出

复制
1 4
37 4
2 8
29 8
1 12
5 12
13 12
17 12
5 20
2 24