#include <iostream>
#include <cstdio>
using namespace std;
const int N=105;
int a[N][5];
int T,M;
int ans=999999;
int dp[N];
int m=1;
void dfs(int t,int v,int i)
{
if(i>M)
{
dp[m++]=v;
return;
}
if(t+a[i][1]<=T)
{
dfs(t+a[i][1],v+a[i][2],i+1);
}
dfs(t,v,i+1);
}
int main()
{
cin>>T>>M;
for(int i=1;i<=M;i++)
{
cin>>a[i][1]>>a[i][2];
}
dfs(0,0,1);
int odd;
odd=dp[1];
for(int i=2;i<=m;i++)
{
if(dp[i]>odd)
{
odd=dp[i];
}
}
cout<<odd<<endl;
return 0;
}