#include<iostream>
#include<stdio.h>
#include<cstring>
#define max1 10000
using namespace std;
struct node
{
int fee, fun;
};
int max(int x, int y)
{
return x>y?x:y;
}
int a[2][max1];
node dp[max1];
int p, n;
node solve(int pos, int cur)
{
if(dp[pos].fee!=0 || dp[pos].fun!=0)
{
return dp[pos];
}
if(pos == n)
{
return dp[pos] = (node){cur, 0};
}
if(cur+a[0][pos]<=p)
{
node l = solve(pos+1, cur+a[0][pos]);
node r = solve(pos+1, cur);
if(l.fun + a[1][pos] > r.fun)
{
return dp[pos] = (node){l.fee, l.fun + a[1][pos]};
}
else
{
return dp[pos] = (node){r.fee, r.fun};
}
}
if(cur+a[0][pos]>p)
{
return dp[pos] = solve(pos+1, cur);
}
//else
return dp[pos] = (node){cur, 0};
}
int main()
{
freopen("C:\\Users\\Shraeyas\\Documents\\pg\\pr_ag\\prag_PARTY.txt", "r", stdin);
while(1)
{
scanf("%d %d", &p, &n);
if(p==0 && n==0)
break;
for(int i=0; i<n; i++)
{
dp[i].fee = 0;
dp[i].fun = 0;
scanf("%d %d", &a[0][i], &a[1][i]);
}
node ans = solve(0, 0);
printf("%d %d\n", ans.fee, ans.fun);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPGNzdHJpbmc+CgojZGVmaW5lIG1heDEgMTAwMDAKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgbm9kZQp7CglpbnQgZmVlLCBmdW47Cn07CgoKaW50IG1heChpbnQgeCwgaW50IHkpCnsKCXJldHVybiB4Pnk/eDp5Owp9CgoKaW50IGFbMl1bbWF4MV07Cm5vZGUgZHBbbWF4MV07CmludCBwLCBuOwoKCm5vZGUgc29sdmUoaW50IHBvcywgaW50IGN1cikKewkKCWlmKGRwW3Bvc10uZmVlIT0wIHx8IGRwW3Bvc10uZnVuIT0wKQoJewoJCXJldHVybiBkcFtwb3NdOwoJfQoJCglpZihwb3MgPT0gbikKCXsKCQlyZXR1cm4gZHBbcG9zXSA9IChub2RlKXtjdXIsIDB9OwoJfQoKCWlmKGN1cithWzBdW3Bvc108PXApCgl7CgkJbm9kZSBsID0gc29sdmUocG9zKzEsIGN1cithWzBdW3Bvc10pOwoJCW5vZGUgciA9IHNvbHZlKHBvcysxLCBjdXIpOwoJCQoJCWlmKGwuZnVuICsgYVsxXVtwb3NdID4gci5mdW4pCgkJewoJCQlyZXR1cm4gZHBbcG9zXSA9IChub2RlKXtsLmZlZSwgbC5mdW4gKyBhWzFdW3Bvc119OwoJCX0KCQkKCQllbHNlCgkJewoJCQlyZXR1cm4gZHBbcG9zXSA9IChub2RlKXtyLmZlZSwgci5mdW59OwoJCX0JCQoJfQoJCglpZihjdXIrYVswXVtwb3NdPnApCgl7CgkJcmV0dXJuIGRwW3Bvc10gPSBzb2x2ZShwb3MrMSwgY3VyKTsKCX0KCQoJLy9lbHNlIAoJcmV0dXJuIGRwW3Bvc10gPSAobm9kZSl7Y3VyLCAwfTsKfQoKCmludCBtYWluKCkKewoJZnJlb3BlbigiQzpcXFVzZXJzXFxTaHJhZXlhc1xcRG9jdW1lbnRzXFxwZ1xccHJfYWdcXHByYWdfUEFSVFkudHh0IiwgInIiLCBzdGRpbik7CgkKCXdoaWxlKDEpCgl7CgkJc2NhbmYoIiVkICVkIiwgJnAsICZuKTsKCQkKCQlpZihwPT0wICYmIG49PTApCgkJYnJlYWs7CgkJCgkJZm9yKGludCBpPTA7IGk8bjsgaSsrKQoJCXsKCQkJZHBbaV0uZmVlID0gMDsKCQkJZHBbaV0uZnVuID0gMDsKCQkJCgkJCXNjYW5mKCIlZCAlZCIsICZhWzBdW2ldLCAmYVsxXVtpXSk7CgkJfQoJCQoJCW5vZGUgYW5zID0gc29sdmUoMCwgMCk7CgkJCgkJcHJpbnRmKCIlZCAlZFxuIiwgYW5zLmZlZSwgYW5zLmZ1bik7Cgl9Cn0=