#include <iostream>
#include <queue>
#include <vector>
using namespace std;
//简单背包问题
const int INF = 0x3f3f3f3f;
const int MAXV = 100000 + 10;
int main() {
    int n;
    if (!(cin >> n)) return 0;
    vector<int> dist(MAXV, INF);
    queue<int> q;

    dist[0] = 0;
    q.push(0);

    while (!q.empty()) {
        int u = q.front(); q.pop();
        if (u == n) break;        
        for (int step : {6, 8}) {
            int v = u + step;
            if (v <= n && dist[v] == INF) {
                dist[v] = dist[u] + 1;
                q.push(v);
            }
        }
    }

    cout << (dist[n] == INF ? -1 : dist[n]) << endl;
    return 0;
}