using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace debug
{
class main
{
static void Main(string args)
{
//問題クラスを展開
ProgramC a = new ProgramC();
a.main();//実行する
}
}
//ABC170
class ProgramA
{
public void main()
{
//入力
int x = int.Parse(Console.ReadLine());
//30以上ならYes、それ以外はNoを出力
if (x >= 30)
Console.WriteLine("Yes");
else
Console.WriteLine("No");
}
}
class ProgramB
{
public void main()
{
//入力
string s = Console.ReadLine().Split(' ');
long n = long.Parse(s[0]);
long d = long.Parse(s[1]);
long count = 0;
//それぞれの距離を求めて、距離がD以下なら1足す
for(int i = 0; i < n;i++)
{
string t = Console.ReadLine().Split(' ');
long x = long.Parse(t[0]);
long y = long.Parse(t[1]);
if (x * x + y * y <= d * d)
count++;
}
//答え出力
Console.WriteLine(count);
}
}
class ProgramC
{
public void main()
{
//入力
int k = int.Parse(Console.ReadLine());
//偶数なら答えは-1
if(k % 2 == 0)
{
Console.WriteLine("-1");
return;
}
//k = 1から7なら答えは1
if (7 % k == 0)
{
Console.WriteLine("1");
return;
}
int flag = 0;
long num = 7;
long count = 1;
//項は10倍して7足すなので、modで管理。modKで0なら答え出力。
while(flag == 0)
{
count++;//項を進める
num *= 10;
num += 7;
num %= k;//10倍して7足したものをmodKで管理
if (num == 0)
flag = 1;
//もし10の7乗以上の項なら答えはないので-1で終わり
if (count >= 10000000)
{
Console.WriteLine("-1");
return;
}
}
//答え出力
Console.WriteLine(count);
}
}
class ProgramD
{
public void main()
{
//入力
long n = long.Parse(Console.ReadLine());
string s = Console.ReadLine();
int wc = 0;
int rc = 0;
//まずは赤と白の石の数を数える
for (int i = 0; i < n; i++)
{
if (s[i] == 'R')
rc++;
else
wc++;
}
//白が0なら0(冷静に赤が0なら0だがこの下に通しても通る)
if (wc == 0)
{
Console.WriteLine("0");
return;
}
int rw = 0;
int ww = 0;
//左から赤の数だけ並べる。不一致の白の数を数える
for (int i = 0; i < rc; i++)
{
if (s[i] == 'W')
rw++;
}
//残りは白。不一致の赤の数を数える
for (int i = rc; i < n; i++)
{
if (s[i] == 'R')
ww++;
}
//答は、赤か白の違う数の小さい方と絶対値の差の和を足す
Console.WriteLine(Math.Min(rw,ww) + Math.Abs(rw - ww));
}
}
class ProgramE
{
public void main()
{
//入力
string s = Console.ReadLine().Split(' ');
long n = long.Parse(s[0]);
long k = long.Parse(s[1]);
long a = new long[n];
string t = Console.ReadLine().Split(' ');
for(int i = 0;i < n;i++)
a[i] = long.Parse(t[i]);
long min = 0;//最初を0にすると1に答えができる
long max = 1000000000;//答候補の最大
//二分探索(答えを決め打ちして、切る回数を数える。k回以下ならmax,そうでないならmin)
//小さくした方が回数がかかるので、maxが満たす最小の丸太の長さ
while(min + 1 != max)
{
long temp = (min + max) / 2;
long cut = 0;
//切る回数を数える
for (int i = 0; i < n; i++)
{
//tempが大きいなら切らない
if (a[i] < temp)
continue;
//割り切れるかどうかで回数は変わる
if(a[i] % temp == 0)
cut += a[i] / temp - 1;
else
cut += a[i] / temp;
}
//k回以下ならmax更新、そうでないならminを更新
if (cut <= k)
max = temp;
else
min = temp;
}
//答え出力
Console.WriteLine(max);
}
}
}