#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;


#define MAX_N 10000000
bool is_prime[MAX_N+1];
void sieve(int n){
	memset(is_prime,true,sizeof(is_prime));
	is_prime[0]=is_prime[1]=false;
	for(int i=2;i<=n;i++){
		if(is_prime[i]){
			for(int j=2*i;j<=n;j+=i)is_prime[j]=false;
		}
	}
}


int main(){
	int n;
	sieve(MAX_N);
	vector<int> v;
	for(int i=13;i<=MAX_N;i++){
		if(is_prime[i-8]&&is_prime[i-6]&&is_prime[i-2]&&is_prime[i])
			v.push_back(i);
	}
	while(cin>>n,n){
		int ans=13;
		cout<<*(upper_bound(v.begin(),v.end(),n)-1)<<endl;
	}
	return 0;
}