import os
import sys
import heapq
# 请在此输入您的代码
if __name__=="__main__":
x,n= map(int,input().split())
l=[]
a=[0]*n
b=[0]*n
c=[0]*n
q=[]
for i in range(n):
l.append(list( map( int ,input().split()) ))
l.sort(key=lambda pair:-pair[1])
total=0
j=0
for i in range(x,0,-1):
while j<n and l[j][1]>=i:
heapq.heappush(q,l[j])
j+=1
if not q:
print(-1)
break
pop = heapq.heappop(q)
total+=pop[0]
if pop[2]>1:
pop[2]-=1
heapq.heappush(q,pop)
else:
print(total)
import os
import sys
# 请在此输入您的代码
def check(t)->bool:
mylist= []
for i in range(n):
if t>=s[i]:
mylist.append([ l[i]-(t-s[i]) ,l[i]+(t-s[i]) ])
if not mylist:
return False
mylist.sort()
if mylist[0][0]>1:
return False
right=mylist[0][1]
for i in range(1,len(mylist)):
if mylist[i][0] <= right + 1:
right= max(right,mylist[i][1])
else:
break
return right>=length
if __name__=="__main__":
n,length=map(int,input().split())
l=[0]*n
s=[0]*n
for i in range(n):
l[i],s[i] = map(int,input().split())
left=0
r=2_000_000_000
while(left<r):
mid=(left+r)//2
if check(mid):
r=mid
else:
left=mid+1
print(r)