#include <algorithm>
#include <cstdio>
using namespace std;
int fun[110], cost[110];
int n, budgt;
int main() {
while (scanf("%d%d", &budgt, &n) && budgt + n) {
int dpfun[110][510], dpcost[110][510];
for (int i = 0; i < n; ++i) scanf("%d%d", &cost[i], &fun[i]);
for (int i = 0; i < n; ++i)
for (int j = 0; j <= budgt; ++j) {
if (j < cost[i]) {
dpfun[i + 1][j] = dpfun[i][j];
dpcost[i + 1][j] = dpcost[i][j];
} else {
dpfun[i + 1][j] = max(dpfun[i][j], dpfun[i][j - cost[i]] + fun[i]);
if (dpfun[i][j] < dpfun[i][j - cost[i]] + fun[i]) {
dpcost[i + 1][j] = dpcost[i][j - cost[i]] + cost[i];
} else {
dpcost[i + 1][j] =
min(dpcost[i][j - cost[i]] + cost[i], dpcost[i][j]);
}
}
}
printf("%d %d\n", dpcost[n][budgt], dpfun[n][budgt]);
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGZ1blsxMTBdLCBjb3N0WzExMF07CmludCBuLCBidWRndDsKaW50IG1haW4oKSB7CiAgd2hpbGUgKHNjYW5mKCIlZCVkIiwgJmJ1ZGd0LCAmbikgJiYgYnVkZ3QgKyBuKSB7CiAgICBpbnQgZHBmdW5bMTEwXVs1MTBdLCBkcGNvc3RbMTEwXVs1MTBdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHNjYW5mKCIlZCVkIiwgJmNvc3RbaV0sICZmdW5baV0pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IGJ1ZGd0OyArK2opIHsKICAgICAgICBpZiAoaiA8IGNvc3RbaV0pIHsKICAgICAgICAgIGRwZnVuW2kgKyAxXVtqXSA9IGRwZnVuW2ldW2pdOwogICAgICAgICAgZHBjb3N0W2kgKyAxXVtqXSA9IGRwY29zdFtpXVtqXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZHBmdW5baSArIDFdW2pdID0gbWF4KGRwZnVuW2ldW2pdLCBkcGZ1bltpXVtqIC0gY29zdFtpXV0gKyBmdW5baV0pOwogICAgICAgICAgaWYgKGRwZnVuW2ldW2pdIDwgZHBmdW5baV1baiAtIGNvc3RbaV1dICsgZnVuW2ldKSB7CiAgICAgICAgICAgIGRwY29zdFtpICsgMV1bal0gPSBkcGNvc3RbaV1baiAtIGNvc3RbaV1dICsgY29zdFtpXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRwY29zdFtpICsgMV1bal0gPQogICAgICAgICAgICAgICAgbWluKGRwY29zdFtpXVtqIC0gY29zdFtpXV0gKyBjb3N0W2ldLCBkcGNvc3RbaV1bal0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgcHJpbnRmKCIlZCAlZFxuIiwgZHBjb3N0W25dW2J1ZGd0XSwgZHBmdW5bbl1bYnVkZ3RdKTsKICB9CiAgcmV0dXJuIDA7Cn0=