#include <iostream>
#include <vector>
#include <bitset>
#include <algorithm>

using namespace std;
constexpr int MAXN = 10000003;

int prime[MAXN];
bool is_prime[MAXN];

int sieve(int n){
    int res = 0;
    fill(is_prime, is_prime + MAXN, true);
    is_prime[0] = is_prime[1] = false;
    for(int i  =2; i <= n; i++){
        if(!is_prime[i])continue;
        prime[res++] = i;
        for(int j = 2*i; j <= n; j+= i) is_prime[j] = false;
    }
    return res;
}

int a[MAXN] = {};

int main(){
    int hoge = sieve(MAXN - 1);
    a[13] = 13;
    for(int i = 13; i < MAXN; i++){
        if(is_prime[i] && is_prime[i - 2] && is_prime[i - 6] && is_prime[i - 8]) a[i] = i;
        a[i] = max(a[i], a[i - 1]);
    }

    while(1){
        int n; cin >> n;
        if(!n) break;
        cout << a[n] << endl;
    }

    return 0;
}

