import java.util.*;
public class Main {
private static final int STEP = 10;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int M = in.nextInt() / STEP;
int N = in.nextInt();
int[][] w = new int[N + 1][3];
int[][] v = new int[N + 1][3];
for (int i = 1; i <= N; ++i) {
int cost = in.nextInt();
int ratio = in.nextInt();
int acc = in.nextInt();
if (acc == 0) {
w[i][0] = cost / STEP;
v[i][0] = cost * ratio;
} else {
if (w[acc][1] == 0) {
w[acc][1] = cost / STEP;
v[acc][1] = cost * ratio;
} else {
w[acc][2] = cost / STEP;
v[acc][2] = cost * ratio;
}
}
}
// 参数初始化完毕
int[][] dp = new int[N + 1][M + 1];
// base case 初始化完毕
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= M; ++j) {
dp[i][j] = dp[i - 1][j]; // 钱不够肯定是不能选择的
if (j >= w[i][0]) // 选择了主件
dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - w[i][0]] + v[i][0]);
if (j >= w[i][0] + w[i][1])
dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - w[i][0] - w[i][1]] + v[i][0] + v[i][1]);
if (j >= w[i][0] + w[i][2])
dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - w[i][0] - w[i][2]] + v[i][0] + v[i][2]);
if (j >= w[i][0] + w[i][1] + w[i][2])
dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - w[i][0] - w[i][1] - w[i][2]] + v[i][0] + v[i][1] + v[i][2]);
}
}
System.out.println(dp[N][M]);
}
in.close();
}
}