# 신예지
거~짓~말

# 최서영
N,L,D=map(int, input().split())
time=[]
result=D
for i in range(N):
    for j in range(L):
        time.append(True)
    for k in range(5):
        time.append(False)

# 잘못됨.. 값이 안나옴!! 최 
while(result<len(time)):
    time.append(False) **# 인덱스 초과되는 경우, 가능한 값을 넣어줌!(이수열)**
    if time[result]!=True: 
        break

    else:
        result+=D

print(result)
# 이수영
N, L, D = map(int, input().split())
timer = L  # 소요 시간
ringtone = D  # 벨이 울리는 타이밍
while True:
    if timer > N*L+(N-1)*5:  # 앨범이 끝났을 경우
        timer = ringtone  # 다음 벨이 울리는 시간
        break
    while timer > ringtone:  # 노래 재생중에 울리는 벨 처리
        ringtone += D
    for i in range(timer, timer+5):  # 조용한 구간
        if i == ringtone:  # 울릴 경우
            timer = i
            break
    if i == timer:
        break
    timer += L+5  # 조용한 구간 + 음악 재생 시간
print(timer)

Untitled

# 박성열

N,L,D=map(int,input().split())

o=(N*(L+5)-5)//D+2 #d list의 길이

d=[D*i for i in range(o)] #전화 울리는 시간list 생성
l=[i*(L+5)+j-5 for i in range(N+1)for j in range(5)] #전화 들을 수 있는 시간 list 생성

A=set(d)&set(l) #교집합 생성

if A:print(min(A)) #있으면 최소 원소 출력
else:print(d[-1]) #없으면 d의 마지막 원소 출력

# 여기
D = 0, 0+D, 0+2D, 0+3D...
D(n) = (n-1)*D, (n>=1) ->단순 반복 횟수

possibletime = L+1~5, 2L+1+5~5+5, 3L+1+10~5+10... #N번 반복

A(N) = N*L+(1~5)*N= N*(L+1~5), (N>=1) ->노래 곡 수
A(N) = N*L+{E+(N-1)*5} = N*L+N*5 -5+E = N*(L+5)+E-5