/*
Author : S.M.SHAHEEN SHA
Uva : 10650 ( Determinate Prime )
*/
#include<algorithm>
#include<cstdio>
#include<sstream>
#include<algorithm>
#include<cstdio>
#include<sstream>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<fstream>
#include<numeric>
#include<string>
#include<vector>
#include<cstring>
#include<map>
#include<iterator>
#include<deque>
// Macro
#define all(a) a.begin(),a.end() // all elements of a container
#define ini1(n) scanf("%d",&n) // input 1 integer
#define ini2(n1,n2) scanf("%d%d",&n1,&n2)// input 2 integer
#define ini3(n1,n2,n3) scanf("%d%d%d",&n1,&n2,&n3)//input 3 integer
#define la(a,i) for(i=0;i<a;i++) // loop from 0 upto n-1
#define laa(a,i) for(i=1;i<=a;i++)// loop from 1 uoto n
#define lab(a,b,i) for(i=a;i<=b;i++)// loop from a upto b
#define pb push_back // push value
#define pi acos(-1.0) // value of pi
#define clr(a) memset(a,0,sizeof(a))// assign 0 value to all elements of arr
#define M 32099
using namespace std;
vector<int>prime;
vector<int>res[200];
bool isprime[M];
void sieve()
{
int root = (int)sqrt(M);
int i,j;
//for(i=0; i<=M; i++) isprime[i] = true;
for(i=2; i<=root; i++)
{
if(!isprime[i])
for(j=i+i; j<=M; j+=i)
isprime[j] = true;
}
//prime.clear();
prime.push_back(2);
for(i=3; i<=M; i+=2) if(!isprime[i]) prime.push_back(i);
// cout << prime.size() << endl;
}
int main()
{
int x,y,i,j=0,k,d1,a,d2,d3;
int diff[16055];
// freopen("input 10650.txt","r",stdin);
// freopen("output 10650.txt","w",stdout);
sieve();
for(i=0;i<prime.size()-1;i++) diff[i] = prime[i+1]-prime[i];
for( i=0; i < prime.size()-4; i++ )
{
if( diff[i]==diff[i+1] )
{
res[j].push_back(prime[i]);
res[j].push_back(prime[i+1]);
res[j].push_back(prime[i+2]);
if( diff[i+1]==diff[i+2])
{
res[j].push_back(prime[i+3]);
i++;
}
j++;
i+=2;
}
}
while( scanf("%d %d",&x,&y)==2 && (x || y) )
{
if(x>y) swap(x,y);
for(i=0; i<j; i++) if(res[i][0]>=x) break;
for( ; i<j && res[i][res[i].size()-1] <= y; i++ )
{
if(res[i].size()==3) printf("%d %d %d\n",res[i][0],res[i][1],res[i][2]);
else printf("%d %d %d %d\n",res[i][0],res[i][1],res[i][2],res[i][3]);
}
}
return 0;
}