var c1,v1,e,b:array[0..6000] of longint;
f:array[0..6000,0..60] of longint;
vv,v,k,i,u,j,kk,m,n,z,x,y,t,s,zym,zhz:longint;
f1:text;
begin
assign(f1,’zin.in’);
reset(f1);
read(f1,kk,vv,n);
for i:=1 to n do
read(f1,v1[i],c1[i]);
for i:= 0 to vv do
for j:= 1 to kk do
begin
f[i,j]:=-maxlongint;
e[i]:=0;
end;
e[0]:=1; f[0,1]:=0; close(f1) ;
for i:= 1 to n do
for j:= vv downto v1[i] do
begin
for k:= 1 to kk do
b[k]:=f[j,k];
zym:=1;
zhz:=1;
x:=e[j-v1[i]];
y:= e[j];
u:=x+y;
if u>kk then u:=kk;
e[j]:=u;
for k:= 1 to u do
begin
if ((b[zym]<f[j-v1[i],zhz]+c1[i])and(zhz<=x))or(zym>y)
then
begin
f[j,u] := f[j-v1[i],zhz]+ c1[i];
inc(zhz) ;
end
else
begin
f[j,u]:= b[zym];
inc(zym);
end;
end;
end;
s:=0;
for i:= 1 to kk do
if f[vv,i]>0 then
inc(s,f[vv,i]);
writeln(s);
end.