#!/usr/bin/env PyPy3 from collections import Counter, defaultdict, deque import itertools import re import math from functools import reduce import operator import bisect from heapq import * import functools mod=998244353 import sys input=sys.stdin.readline n,V,c=map(int,input().split()) INF = 1 << 31 dp = [[-INF] * (V+1) for _ in range(n+1)] dp[0][0] = 0 for i in range(n): v,w=map(int,input().split()) for j in range(1,i+2)[::-1]: for k in range(min(v,V+1)): tmp = dp[j-1][k] for x in range(k+v,V+1,v): tmp = max(tmp+w,dp[j-1][x-v]+w) dp[j][x] = max(tmp,dp[j][x]) ans = 0 for i in range(n+1): for j in range(V+1): ans = max(ans,i*c+dp[i][j]) print(ans)