/*
TASK:crazy
LANG:C++
*/

#include <stdio.h>
#include "module.h"

long x, y, x1, y1;

long minprime(long n)
{
  long c;
  if(n % 2 == 0)
    return 2;
  for(c = 3; c <= n; c += 2)
    if(n % c == 0)
      return c;
  return 1;
}


long maxprime(long n)
{
  long max = 1, tmp;
  while(n > 1)
  {
    tmp = minprime(n);
    n /= tmp;
    if(tmp > max)
      max = tmp;
    if(max > 2)
      return max;
  }
  return max;
}

int main(void) 
{
  while(1)
  {
    getnum(&x, &y);
    x1 = maxprime(x);
    y1 = maxprime(y);
//    printf("%ld %ld\n", x1, y1);
    if(x1 != x)
    {
      if(x1 > 2)
      {
	setnum(x1, y+1);
      }
      else
      {
	if(x % 8 == 0 && x > 8)
	{
	  setnum(8, y+1);
	}
	else
	{
	  setnum(2, y+1);
	}
      }
    }
    else
    {
      if(y1 > 2)
      {
	setnum(x+1, y1);
      }
      else
      {
	if(y % 8 == 0 && y > 8)
	{
	  setnum(x+1, 8);
	}
	else
	{
	  setnum(x+1, 2);
	}
      }
    }
  }
}

