#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std ;
int flag[1250000] ;
struct node{
int x, y;
}ha[1000000];
int cmp(node a,node b){
if(a.y!=b.y) return a.y<b.y;
return a.x<b.x;
}
int main(){
int n,m,a[62550],t=0;
scanf("%d%d",&n,&m);
for(int i=0;i<=m;i++)
for(int j=0;j<=m;j++)
if(flag[i*i+j*j]==0){
flag[i*i+j*j]=1;
t++;
a[t]=i*i+j*j;
}
int ans,cnt=0;
for(int i=1;i<=t;i++){
for(int j=1;j<=m*m;j++){
if(a[i]+(n-1)*j>m*m*2)break;
ans=1;
for(int k=n-1;k>=1;k--){
if(flag[a[i]+k*j]){
ans++;
}
else break;
}
if(ans==n){
cnt++;
ha[cnt].x=a[i];
ha[cnt].y =j;
}
}
}
if(cnt==0)cout<<"NONE"<<endl;
else {
sort(ha+1,ha+cnt+1,cmp);
for(int i=1;i<=cnt;i++)printf("%d %d\n",ha[i].x,ha[i].y);
}
return 0;
}
网友评论