public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), m = sc.nextInt();
int[] dp = new int[30001];
int[][] data = new int[m][2];
for (int i = 0; i < m; i++) {
data[i][0] = sc.nextInt();
data[i][1] = sc.nextInt();
}sc.close();
for (int i = 0; i < m; i++) {
for (int j = n; j > 0; j--) {
if (j >= data[i][0]) {
dp[j] = Math.max(dp[j - data[i][0]] + data[i][1] * data[i][0], dp[j]);
}
}
}
System.out.println(dp[n]);
}
}
v,p,a:array[0..25] of longint;
s:array[0..30000] of longint;
function max(x,y:longint):longint;
begin
if x>y then max:=x else max:=y;
end;
begin
readln(n,m);
for i:=1 to m do
begin
readln(v[i],p[i]);
a[i]:=v[i]*p[i];
end; for i:=1 to m do
begin
for j:=n downto v[i] do
s[j]:=max(s[j],s[j-v[i]]+a[i]);
end;
writeln(s[n]);end. for i:=1 to m do
begin
for j:=n downto v[i] do
s[j]:=max(s[j],s[j-v[i]]+a[i]);
readln;
readln;
end;