n = int(input())
ugly = [0] * n #못생긴 수를 담기 위한 테이블(1차원 DP테이블)
ugly[0] = 1 #첫번째 못생긴 수 1

# 2배 3배 5배를 위한 인덱스
i2 = i3 = i5 = 0
#처음에 곱셈값 초기화 next2, next3, next5 = (2, 3, 5) -> (4, 3, 5) -> (4, 6, 5) -> (8, 6, 5) -> (8, 6, 10)
next2, next3, next5 = 2, 3, 5

#1부터 n까지의 못생기 수를 찾기
for i in range(1, n ):
    #가능한 곱셈 결과 중에서 가장 작은 수를 선택
    ugly[i] = min(next2, next3, next5) #여기서 담고 다음 수르 정해줌
    #인덱스에 따라서 곱셈결과를 증가
    if ugly[i] == next2:
        i2 += 1
        next2 = ugly[i2] * 2
    if ugly[i] == next3:
        i3 += 1
        next3 = ugly[i3] * 3
    if ugly[i] == next5:
        i5 += 1
        next5 = ugly[i5] * 5
#n번째 못생긴수를 출력
print(ugly[n-1])