Buggy python submission (verdict: Time Limit Exceeded):
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
#dab={}
lab=[]
for i in range(N):
    a,b=map(int,input().split())
    #dab[a]=b
    lab.append([a,b])
#dab.sort(key=lambda )
lab.sort(key=lambda x:-x[1])
#print("lab",lab)
#lsch=[-1]*M#ミスしてた#やっぱおk_どうせM番目には入らない
#lsch=[M-1-i for i in range(M)]
dsch={i:0 for i in range(M)}
ans=0
for ab in lab:
    if ab[0]<=M:
        d=M-ab[0]
        #while d>=0:
        #for i in range(d,-1,-1):
        #    if lsch[i]==-1:#whileから書き直したときiではなくdのままにしていた
        #        lsch[i]=1
        #        ans+=ab[1]
        #        #print("ab",ab)
        #        break
            #d-=1
        #while d>=0:
        for i in range(d,-1,-1):
            if i in dsch:
                ans+=ab[1]
                #print("ab",ab)
                del dsch[i]
                break
#print("lsch",lsch)
#print("dsch",dsch)
print(ans)


Fixed submission:
import heapq
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
lab=[]
for i in range(N):
    llab=list(map(int,input().split()))
    lab.append(llab)
lab.sort(key=lambda ab:ab[0])
hq=[]
ind=0
ans=0
#print(lab)
#c=0
for i in range(M):
    if hq:
            ans-=heapq.heappop(hq)
    for j in range(ind,N):
        #if f==0:
        #print(i,j,lab[j][0])
        if lab[j][0]==i+1:
            heapq.heappush(hq,-lab[j][1])#
        else:
            ind=j
            #j=N-1#これダメ、抜けられていない
            break
        #c+=1
    #if hq:
    #        ans-=heapq.heappop(hq)
    #print(hq)
#print(c)
if hq:
    ans-=heapq.heappop(hq)
print(ans)
#for i in range(3):
#    i=3
#    print(12345)

Buggy python submission (verdict: Time Limit Exceeded):
N,M=map(int,input().split())
#dab={}
lab=[]
for i in range(N):
    a,b=map(int,input().split())
    #dab[a]=b
    lab.append([a,b])
#dab.sort(key=lambda )
lab.sort(key=lambda x:-x[1])
#print("lab",lab)
#lsch=[-1]*M#ミスしてた#やっぱおk_どうせM番目には入らない
#lsch=[M-1-i for i in range(M)]
dsch={i:0 for i in range(M)}
ans=0
for ab in lab:
    if ab[0]<=M:
        d=M-ab[0]
        #while d>=0:
        #for i in range(d,-1,-1):
        #    if lsch[i]==-1:#whileから書き直したときiではなくdのままにしていた
        #        lsch[i]=1
        #        ans+=ab[1]
        #        #print("ab",ab)
        #        break
            #d-=1
        #while d>=0:
        for i in range(d,-1,-1):
            if i in dsch:
                ans+=ab[1]
                #print("ab",ab)
                del dsch[i]
                break
#print("lsch",lsch)
#print("dsch",dsch)
print(ans)


Fixed submission:
import heapq
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
lab=[]
for i in range(N):
    llab=list(map(int,input().split()))
    lab.append(llab)
lab.sort(key=lambda ab:ab[0])
hq=[]
ind=0
ans=0
#print(lab)
#c=0
for i in range(M):
    if hq:
            ans-=heapq.heappop(hq)
    for j in range(ind,N):
        #if f==0:
        #print(i,j,lab[j][0])
        if lab[j][0]==i+1:
            heapq.heappush(hq,-lab[j][1])#
        else:
            ind=j
            #j=N-1#これダメ、抜けられていない
            break
        #c+=1
    #if hq:
    #        ans-=heapq.heappop(hq)
    #print(hq)
#print(c)
if hq:
    ans-=heapq.heappop(hq)
print(ans)
#for i in range(3):
#    i=3
#    print(12345)

Buggy python submission (verdict: Time Limit Exceeded):
N,M=map(int,input().split())
#dab={}
lab=[]
for i in range(N):
    a,b=map(int,input().split())
    #dab[a]=b
    lab.append([a,b])
#dab.sort(key=lambda )
lab.sort(key=lambda x:-x[1])
#print("lab",lab)
lsch=[-1]*M#ミスしてた#やっぱおk_どうせM番目には入らない
ans=0
for ab in lab:
    if ab[0]<=M:
        d=M-ab[0]
        #while d>=0:
        for i in range(d,-1,-1):
            if lsch[i]==-1:#whileから書き直したときiではなくdのままにしていた
                lsch[i]=1
                ans+=ab[1]
                #print("ab",ab)
                break
            #d-=1
#print("lsch",lsch)
print(ans)


Fixed submission:
import heapq
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
lab=[]
for i in range(N):
    llab=list(map(int,input().split()))
    lab.append(llab)
lab.sort(key=lambda ab:ab[0])
hq=[]
ind=0
ans=0
#print(lab)
#c=0
for i in range(M):
    if hq:
            ans-=heapq.heappop(hq)
    for j in range(ind,N):
        #if f==0:
        #print(i,j,lab[j][0])
        if lab[j][0]==i+1:
            heapq.heappush(hq,-lab[j][1])#
        else:
            ind=j
            #j=N-1#これダメ、抜けられていない
            break
        #c+=1
    #if hq:
    #        ans-=heapq.heappop(hq)
    #print(hq)
#print(c)
if hq:
    ans-=heapq.heappop(hq)
print(ans)
#for i in range(3):
#    i=3
#    print(12345)