#include<iostream>
#include<stdio.h>
#include<cstring>
#define max1 102
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][502];
int p, n;
node solve(int pos, int cur)
{
if(pos == n)
{
return (node){cur, 0};
}
if(dp[pos][cur].fee!=-1)
return dp[pos][cur];
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][cur] = (node){l.fee, l.fun + a[1][pos]};
}
else if (l.fun + a[1][pos] < r.fun)
{
return dp[pos][cur] = (node){r.fee, r.fun};
}
else // if both equal
return dp[pos][cur] = (node){min(r.fee,l.fee), r.fun};
}
if(cur+a[0][pos]>p)
{
return dp[pos][cur] = solve(pos+1, cur);
}
}
int main()
{
//freopen("C:\\Users\\Shraeyas\\Documents\\pg\\pr_ag\\prag_PARTY.txt", "r", stdin);
while(1)
{
for(int i=0;i<max1;i++)
for(int j=0;j<501;j++)
dp[i][j].fee = dp[i][j].fun = -1;
scanf("%d %d", &p, &n);
if(p==0 && n==0)
break;
for(int i=0; i<n; i++)
{
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+CiAKI2RlZmluZSBtYXgxIDEwMgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKc3RydWN0IG5vZGUKewoJaW50IGZlZSwgZnVuOwp9OwogCiAKaW50IG1heChpbnQgeCwgaW50IHkpCnsKCXJldHVybiB4Pnk/eDp5Owp9CiAKIAppbnQgYVsyXVttYXgxXTsKbm9kZSBkcFttYXgxXVs1MDJdOwppbnQgcCwgbjsKIAogCm5vZGUgc29sdmUoaW50IHBvcywgaW50IGN1cikKewkKCWlmKHBvcyA9PSBuKQoJewoJCXJldHVybiAobm9kZSl7Y3VyLCAwfTsKCX0KIAlpZihkcFtwb3NdW2N1cl0uZmVlIT0tMSkKIAkJcmV0dXJuIGRwW3Bvc11bY3VyXTsKCWlmKGN1cithWzBdW3Bvc108PXApCgl7CgkJbm9kZSBsID0gc29sdmUocG9zKzEsIGN1cithWzBdW3Bvc10pOwoJCW5vZGUgciA9IHNvbHZlKHBvcysxLCBjdXIpOwogCgkJaWYobC5mdW4gKyBhWzFdW3Bvc10gPiByLmZ1bikKCQl7CgkJCXJldHVybiBkcFtwb3NdW2N1cl0gPSAobm9kZSl7bC5mZWUsIGwuZnVuICsgYVsxXVtwb3NdfTsKCQl9CiAKCQllbHNlIGlmIChsLmZ1biArIGFbMV1bcG9zXSA8IHIuZnVuKQoJCXsKCQkJcmV0dXJuIGRwW3Bvc11bY3VyXSA9IChub2RlKXtyLmZlZSwgci5mdW59OwoJCX0JCQoJCQoJCWVsc2UgLy8gaWYgYm90aCBlcXVhbAoJCQlyZXR1cm4gZHBbcG9zXVtjdXJdID0gKG5vZGUpe21pbihyLmZlZSxsLmZlZSksIHIuZnVufTsKCX0KIAoJaWYoY3VyK2FbMF1bcG9zXT5wKQoJewoJCXJldHVybiBkcFtwb3NdW2N1cl0gPSBzb2x2ZShwb3MrMSwgY3VyKTsKCX0KCn0KIAogCmludCBtYWluKCkKewoJLy9mcmVvcGVuKCJDOlxcVXNlcnNcXFNocmFleWFzXFxEb2N1bWVudHNcXHBnXFxwcl9hZ1xccHJhZ19QQVJUWS50eHQiLCAiciIsIHN0ZGluKTsKIAoJd2hpbGUoMSkKCXsKCQlmb3IoaW50IGk9MDtpPG1heDE7aSsrKQoJCQlmb3IoaW50IGo9MDtqPDUwMTtqKyspCgkJCQlkcFtpXVtqXS5mZWUgPSBkcFtpXVtqXS5mdW4gPSAtMTsKCQlzY2FuZigiJWQgJWQiLCAmcCwgJm4pOwogCgkJaWYocD09MCAmJiBuPT0wKQoJCWJyZWFrOwogCgkJZm9yKGludCBpPTA7IGk8bjsgaSsrKQoJCXsKCQkJc2NhbmYoIiVkICVkIiwgJmFbMF1baV0sICZhWzFdW2ldKTsKCQl9CiAKCQlub2RlIGFucyA9IHNvbHZlKDAsIDApOwogCgkJcHJpbnRmKCIlZCAlZFxuIiwgYW5zLmZlZSwgYW5zLmZ1bik7Cgl9Cn0=