import sys
sys.stdin = open("input.txt", "rt")
from collections import deque, Counter
sys.setrecursionlimit(100000)
'''
dp : bottom-up 방식을 생각했다.
그런데, 제일 중요한 것은
현재 내가 만난 값이, 3 혹은 5로도 나누어떨어지는지
안떨어지는지를 확인하는 방법을 모르겠다는 것.
자. 우리가 구해야 하는 것은,
해당 kg가 3과 5의 합으로 이루어질 때,
최소로 드는 봉지의 개수.
즉, 최대한 5kg 짜리 봉지로 줘야 함을 의미한다.
만약, 나누어떨이지지 않으면 -1을 출력한다.
< 그렇다면 ! >
어떻게 해당 kg 가 5kg, 혹은 3kg 의 조합으로
이루어지는지 알 수 있을까 ??
5kg로 최대한 나누어줘야 한다는 것이 point !
그렇다면, 5kg으로 나눠보고,
안나우어떨어지면
3kg을 뺀다.
그렇게 계속 빼가다가
뺀 값이 5kg로 나누어떨어지면
지금까지 뺀 3kg 개수 + 5kg 로 나눈 몫을 출력하면 된다.
그런데, 계속 빼다가
결국 < 0이 된다는 것은
해당 kg가 3 혹은 5kg 의 조합으로
이루어지지 않는다는 것을 의미하므로,
-1 을 출력
'''
n = int(input())
three = 0 # 3kg
res = 0
while True:
if n % 5 == 0 :
print(three + n // 5 )
break
else:
n -= 3
three += 1
if n < 0 :
print(-1)
break