#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
bool prime[10001000];
void eratos()
{
	memset(prime,true,sizeof(prime));
	prime[0]=prime[1]=false;
	for(int i=2;i*i<10000000;i++)if(prime[i])
	{
		for(int j=i*2;j<=10000000;j+=i)
		{
			prime[j]=false;
		}
	}
	return;
}
int main()
{
	vector<int> vec;
	eratos();
	for(int i=13;i<=10000000;i++)if(prime[i])
	{
		if(prime[i-2]&&prime[i-6]&&prime[i-8])vec.push_back(i);
	}
	vector<int>::iterator it;
	while(1)
	{
		int k;
		scanf("%d",&k);
		if(k==0)break;
		it = upper_bound(vec.begin(),vec.end(),k);
		it--;
		cout << *it << endl;
	}
	return 0;
}