def sac(E,P,i,temp):
    if temp[i][P]>0: return temp[i][P]
    if i == 0: return 0
    if E[i-1][0] > P:
        temp[i][P] = sac(E, P, i-1,temp)
        return temp[i][P]
    else:
        temp[i][P] = max(sac(E, P, i-1, temp), E[i-1][1] + sac(E, P - E[i-1][0], i-1, temp))
        return temp[i][P]

def initSac(E,P):
    temp = [ [0] * (P+1) for i in range(len(E)+1) ]
    return sac(E, P, len(E), temp)