/*
  AOJ 1186
  Title:Integral Rectangles
  @kankichi573
*/
#include <stdio.h>
#include <string.h>
int table[20000];
int x,y,retx,rety;
void init()
{
  int i,j,t2;
  memset(table,0,sizeof(int)*20000);
  for(i=1;i<=150;i++)
    for(j=1;j<=150;j++)
      {
	t2=i*i+j*j;
	if(t2>20000)
	  break;
	table[t2]=-1;
      }
}
solve()
{
  int i,j,t,t2=x*x+y*y;

  //printf("x y t=%d %d %d\n",x,y,t2);

  if(table[t2])
    {
      for(i=x+1;i<=150;i++)
	for(j=i+1;j<=150;j++)
	  if(i*i+j*j==t2)
	    {
	      retx=i;
	      rety=j;
	      return;
	    }
    }
  for(t=t2+1;t<=20000;t++)
  if(table[t])
    {
      for(i=1;i<=150;i++)
	for(j=i+1;j<=150;j++)
	  if(i*i+j*j==t)
	    {
	      retx=i;
	      rety=j;
	      return;
	    }
    }
  //never reach    
}

main()
{
  init();
  while(scanf("%d %d",&x,&y) && (x || y))
    {
      solve();
      printf("%d %d\n",retx,rety);
    }
  return(0);
}