//#include<stdio.h>
//#include<string.h>
//int main()
//{
// int t;
// int data[3000001] = {};
// int arr[3000001] = {};
// int i, j;
// scanf("%d", &t);
// for(i = 0; i < t; i++)
// {
// scanf("%d", &data[i]);
// }
// for(i = 0; i < t; i++)
// {
// for(j = 1; j <= data[i]; j++)
// {
// if(data[i]%2==0||data[i]==1)//1. 2로 계속 나눠서 마지막까지 2의 배수인 수 (1번이라도 나머지가 1이면 아래 else로)
// {
// data[i] = data[i] / 2;
// arr[i] = 1;
// }
// else//2. 위에서 탈락한 수들 0으로 처리
// {
// arr[i] = 0;
// }
// }
// }
// for(i = 0; i < t; i++)
// {
// printf("%d ", arr[i]);
// }
//}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int memo[400001] = {};
int main()
{
int a = 0, b = 0, c = 0, d = 0, e = 0;
int i, j;
double f;
int arr[400001] = {};
scanf("%d %d", &a, &b);
for(i=a; i<=b; i++) // 시간초과: 모두 조사 ( X )
{
// printf("%lf ", f);
if(i%2==1||i==2)
{
f = sqrt(i);
memo[i] = f;
for(j=1; j<=memo[i]; j++)
{
if(i%j==0)
{
c++;
}
}
if(c == 1)
{
arr[d] = i;
d++;
}
c = 0;
}
}
// for(i = 0; i <strlen(arr);i++)
// {
// if(arr[i] < 0)
// {
// arr[i] = arr[i] + 256;
// printf("%d", arr[i]);
// }
//
// }
for(i = 0; arr[i]!='\0'; i++)
{
if(arr[i+1] - arr[i] == 2)
{
printf("%d %d\n", arr[i], arr[i+1]);
}
}
}