/* paiza POH! Lite
* result:
* http://p...content-available-to-author-only...a.jp/poh/kirishima/result/000512911c98eece9b0aa060fa6ce332
* author: Leonardone @ NEETSDKASU
*/
import java.io.*;
import java.lang.*;
import java.util.*;
class Main
{
static class Data implements Comparable<Data> {
public int q;
public int r;
public double p;
public int compareTo(Data o) {
return (int)(o.p - this.p);
}
}
static int parseInt
(String str
) { int len = str.length();
int n = 0;
for (int i = 0; i < len; i++) {
n = n * 10 + (int)(str.charAt(i) - '0');
}
return n;
}
static Data[] data = new Data[100];
static int all_q = 0;
static int all_r = 0;
{
int m, n, i;
m = parseInt(in.readLine());
n = parseInt(in.readLine());
for (i = 0; i < n; i++) {
String[] str
= in.
readLine().
split(" "); data[i] = new Data();
all_q += data[i].q = parseInt(str[0]);
all_r += data[i].r = parseInt(str[1]);
data[i].p = (double)data[i].r / (double)data[i].q;
}
for (; i < 100; i++) {
data[i] = new Data();
}
int sum_q = 0, sum_r = 0;
for (i = 0; sum_q < m && i < n; i++) {
sum_q += data[i].q;
sum_r += data[i].r;
}
if (n - i > i) {
i += 3;
foo(m, i > n ? n : i);
} else {
i -= 5;
if (i < 0) {
i = 0;
}
bar(m, n - i, i);
}
}
static void foo(int m, int n) {
int a0, a1, b0, b1, c0;
int min, sum_q, sum_r;
int i;
if (n > 25) {
b0 = 0;
b1 = 1 << (n - 25);
} else {
b0 = 1 << n;
b1 = 0;
}
a0 = 1;
a1 = 0;
c0 = 1 << 25;
min = 250000000;
for (;;) {
if (a1 > b1) {
break;
} else if (a1 == b1 && a0 > b0) {
break;
}
if (a0 == c0) {
a0 = 0;
a1++;
}
sum_q = sum_r = 0;
for (i = 0; i < 25; i++) {
if (1 == ((a0 >> i) & 1)) {
sum_q += data[i].q;
sum_r += data[i].r;
}
if (1 == ((a1 >> i) & 1)) {
sum_q += data[i + 25].q;
sum_r += data[i + 25].r;
}
}
if (sum_q >= m && sum_r < min) {
min = sum_r;
}
a0++;
}
}
static void bar(int m, int n, int d) {
int a0, a1, b0, b1, c0;
int min, sum_q, sum_r;
int i;
if (n > 25) {
b0 = 0;
b1 = 1 << (n - 25);
} else {
b0 = 1 << n;
b1 = 0;
}
a0 = 1;
a1 = 0;
c0 = 1 << 25;
min = 250000000;
for (;;) {
if (a1 > b1) {
break;
} else if (a1 == b1 && a0 > b0) {
break;
}
if (a0 == c0) {
a0 = 0;
a1++;
}
sum_q = sum_r = 0;
for (i = 0; i < 25; i++) {
if (1 == ((a0 >> i) & 1)) {
sum_q += data[i + d].q;
sum_r += data[i + d].r;
}
if (1 == ((a1 >> i) & 1)) {
sum_q += data[i + d + 25].q;
sum_r += data[i + d + 25].r;
}
}
if (all_q - sum_q >= m && all_r - sum_r < min) {
min = all_r - sum_r;
}
a0++;
}
}
}
LyogcGFpemEgUE9IISBMaXRlCiAqIHJlc3VsdDoKICogaHR0cDovL3AuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmEuanAvcG9oL2tpcmlzaGltYS9yZXN1bHQvMDAwNTEyOTExYzk4ZWVjZTliMGFhMDYwZmE2Y2UzMzIKICogYXV0aG9yOiBMZW9uYXJkb25lIEAgTkVFVFNES0FTVQogKi8KaW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS51dGlsLio7CgpjbGFzcyBNYWluCnsKCXN0YXRpYyBjbGFzcyBEYXRhIGltcGxlbWVudHMgQ29tcGFyYWJsZTxEYXRhPiB7CgkJcHVibGljIGludCBxOwoJCXB1YmxpYyBpbnQgcjsKCQlwdWJsaWMgZG91YmxlIHA7CgkJcHVibGljIGludCBjb21wYXJlVG8oRGF0YSBvKSB7CgkJCXJldHVybiAoaW50KShvLnAgLSB0aGlzLnApOwoJCX0KCX0KCQoJc3RhdGljIGludCBwYXJzZUludChTdHJpbmcgc3RyKSB7CgkJaW50IGxlbiA9IHN0ci5sZW5ndGgoKTsKCQlpbnQgbiA9IDA7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgewoJCQluID0gbiAqIDEwICsgKGludCkoc3RyLmNoYXJBdChpKSAtICcwJyk7CgkJfQoJCXJldHVybiBuOwoJfQoKCXN0YXRpYyBEYXRhW10gZGF0YSA9IG5ldyBEYXRhWzEwMF07CglzdGF0aWMgaW50IGFsbF9xID0gMDsKCXN0YXRpYyBpbnQgYWxsX3IgPSAwOwoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVtLmluKSk7CgkJaW50IG0sIG4sIGk7CgkJCgkJbSA9IHBhcnNlSW50KGluLnJlYWRMaW5lKCkpOwoJCW4gPSBwYXJzZUludChpbi5yZWFkTGluZSgpKTsKCQkKCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCVN0cmluZ1tdIHN0ciA9IGluLnJlYWRMaW5lKCkuc3BsaXQoIiAiKTsKCQkJZGF0YVtpXSA9IG5ldyBEYXRhKCk7CgkJCWFsbF9xICs9IGRhdGFbaV0ucSA9IHBhcnNlSW50KHN0clswXSk7CgkJCWFsbF9yICs9IGRhdGFbaV0uciA9IHBhcnNlSW50KHN0clsxXSk7CgkJCWRhdGFbaV0ucCA9IChkb3VibGUpZGF0YVtpXS5yIC8gKGRvdWJsZSlkYXRhW2ldLnE7CgkJfQoJCWZvciAoOyBpIDwgMTAwOyBpKyspIHsKCQkJZGF0YVtpXSA9IG5ldyBEYXRhKCk7CgkJfQoJCQoJCUFycmF5cy5zb3J0KGRhdGEsIDAsIG4pOwoJCQoJCWludCBzdW1fcSA9IDAsIHN1bV9yID0gMDsKCQlmb3IgKGkgPSAwOyBzdW1fcSA8IG0gJiYgaSA8IG47IGkrKykgewoJCQlzdW1fcSArPSBkYXRhW2ldLnE7CgkJCXN1bV9yICs9IGRhdGFbaV0ucjsKCQl9CgkJCgkJaWYgKG4gLSBpID4gaSkgewoJCQlpICs9IDM7CgkJCWZvbyhtLCBpID4gbiA/IG4gOiBpKTsKCQl9IGVsc2UgewoJCQlpIC09IDU7CgkJCWlmIChpIDwgMCkgewoJCQkJaSA9IDA7CgkJCX0KCQkJYmFyKG0sIG4gLSBpLCBpKTsKCQl9CgkJCgl9CgkKCXN0YXRpYyB2b2lkIGZvbyhpbnQgbSwgaW50IG4pIHsKCQlpbnQgYTAsIGExLCBiMCwgYjEsIGMwOwoJCWludCBtaW4sIHN1bV9xLCBzdW1fcjsKCQlpbnQgaTsKCQkgCgkJaWYgKG4gPiAyNSkgewoJCQliMCA9IDA7CgkJCWIxID0gMSA8PCAobiAtIDI1KTsKCQl9IGVsc2UgewoJCQliMCA9IDEgPDwgbjsKCQkJYjEgPSAwOwoJCX0KCQkgCgkJYTAgPSAxOwoJCWExID0gMDsKCQljMCA9IDEgPDwgMjU7CgkJbWluID0gMjUwMDAwMDAwOwoJCWZvciAoOzspIHsKCQkJaWYgKGExID4gYjEpIHsKCQkJCWJyZWFrOwoJCQl9IGVsc2UgaWYgKGExID09IGIxICYmIGEwID4gYjApIHsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmIChhMCA9PSBjMCkgewoJCQkJYTAgPSAwOwoJCQkJYTErKzsKCQkJfQoJCQlzdW1fcSA9IHN1bV9yID0gMDsKCQkJZm9yIChpID0gMDsgaSA8IDI1OyBpKyspIHsKCQkJCWlmICgxID09ICgoYTAgPj4gaSkgJiAxKSkgewoJCQkJCXN1bV9xICs9IGRhdGFbaV0ucTsKCQkJCQlzdW1fciArPSBkYXRhW2ldLnI7CgkJCQl9CgkJCQlpZiAoMSA9PSAoKGExID4+IGkpICYgMSkpIHsKCQkJCQlzdW1fcSArPSBkYXRhW2kgKyAyNV0ucTsKCQkJCQlzdW1fciArPSBkYXRhW2kgKyAyNV0ucjsKCQkJCX0KCQkJfQoJCQlpZiAoc3VtX3EgPj0gbSAmJiBzdW1fciA8IG1pbikgewoJCQkJbWluID0gc3VtX3I7CgkJCX0KCQkJYTArKzsKCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKG1pbik7Cgl9CgkKCXN0YXRpYyB2b2lkIGJhcihpbnQgbSwgaW50IG4sIGludCBkKSB7CgkJaW50IGEwLCBhMSwgYjAsIGIxLCBjMDsKCQlpbnQgbWluLCBzdW1fcSwgc3VtX3I7CgkJaW50IGk7CgkJIAoJCWlmIChuID4gMjUpIHsKCQkJYjAgPSAwOwoJCQliMSA9IDEgPDwgKG4gLSAyNSk7CgkJfSBlbHNlIHsKCQkJYjAgPSAxIDw8IG47CgkJCWIxID0gMDsKCQl9CgkJIAoJCWEwID0gMTsKCQlhMSA9IDA7CgkJYzAgPSAxIDw8IDI1OwoJCW1pbiA9IDI1MDAwMDAwMDsKCQlmb3IgKDs7KSB7CgkJCWlmIChhMSA+IGIxKSB7CgkJCQlicmVhazsKCQkJfSBlbHNlIGlmIChhMSA9PSBiMSAmJiBhMCA+IGIwKSB7CgkJCQlicmVhazsKCQkJfQoJCQlpZiAoYTAgPT0gYzApIHsKCQkJCWEwID0gMDsKCQkJCWExKys7CgkJCX0KCQkJc3VtX3EgPSBzdW1fciA9IDA7CgkJCWZvciAoaSA9IDA7IGkgPCAyNTsgaSsrKSB7CgkJCQlpZiAoMSA9PSAoKGEwID4+IGkpICYgMSkpIHsKCQkJCQlzdW1fcSArPSBkYXRhW2kgKyBkXS5xOwoJCQkJCXN1bV9yICs9IGRhdGFbaSArIGRdLnI7CgkJCQl9CgkJCQlpZiAoMSA9PSAoKGExID4+IGkpICYgMSkpIHsKCQkJCQlzdW1fcSArPSBkYXRhW2kgKyBkICsgMjVdLnE7CgkJCQkJc3VtX3IgKz0gZGF0YVtpICsgZCArIDI1XS5yOwoJCQkJfQoJCQl9CgkJCWlmIChhbGxfcSAtIHN1bV9xID49IG0gJiYgYWxsX3IgLSBzdW1fciA8IG1pbikgewoJCQkJbWluID0gYWxsX3IgLSBzdW1fcjsKCQkJfQoJCQlhMCsrOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4obWluKTsKCX0KCQp9