문제 : https://www.acmicpc.net/problem/1049
끊긴 기타줄 N개를 6개세트와 단품가격중 최소비용으로 채우는 문제이다.
주어지는 6개 세트가격과 단품가격을 각각 리스트에 담는다
이때, 6개 세트가격이 단품6개가격보다 크다면, 세트가격을 단품6개가격으로 변경 후 리스트에 담아준다.
그 후, 두 리스트를 정렬해주고
6개 세트중 가장 낮은가격으로 N을 최대한 채워 준 뒤,
남은 나머지x를 단품중 가장 낮은가격*x와 세트중 가장 낮은가격중 더 낮은값으로 처리해준다.
N,M=map(int,input().split())
pac=[]
one=[]
for i in range(M):
p,s=map(int,input().split())
p=p if s*6>p else s*6
pac.append(p)
one.append(s)
pac.sort()
one.sort()
res=0
res+=(N//6)*pac[0]
N-=(6)*(N//6)
res+=N*one[0] if N*one[0]<pac[0] else pac[0]
print(res)