#include <stdio.h>
#include <string.h>

#define MAX(a,b) ((a>b)?(a):(b))

int main()
{
	int N = 0; //总钱数
	int m = 0;
	scanf("%d %d", &N, &m);
    N /= 10;	//钱数/10,减少循环次数
	/* 商品选项
	1、仅主件					price[m][0]	value[m][0]
	2、主件 + 附件1				price[m][1]	value[m][1]
	3、主件 + 附件2				price[m][2]	value[m][2]
	4、主件 + 附件1 + 附件2		price[m][3]	value[m][3]
	*/
	int price[m][4];	//价格
	int value[m][4]; 	//满意度 = 价格 * 重要度
	memset(price, 0, m*4*sizeof(int));
	memset(value, 0, m*4*sizeof(int));
	
	int v = 0;	//物品价格
	int p = 0;	//重要度(1-5)
	int q = 0;	//主、附件
	
	for(int i = 0; i < m; i++)
	{
		scanf("%d %d %d", &v, &p, &q);
		v /= 10;
		if(q == 0)	//主件
		{
			price[i][0] = v;
			value[i][0] = v * p;
		}
		else
		{
			if(price[q-1][1] == 0)
			{
				//附件1
				price[q-1][1] = v;
				value[q-1][1] = v * p;
			}
			else
			{
				//附件2
				price[q-1][2] = v;
				value[q-1][2] = v * p;
				
				//附件1 + 附件2
				price[q-1][3] = price[q-1][1] + price[q-1][2];
				value[q-1][3] = value[q-1][1] + value[q-1][2];
			}
		}
	}
	
	/* 商品选项赋值 */
	for(int i = 0; i < m; i++)
	{
		for(int j = 1; j < 4; j++)
		{
			price[i][j] += price[i][0];
			value[i][j] += value[i][0];
		}
	}
#if 0
	/* 商品价格打印 */
	for(int i = 0; i < m; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			printf("price[%d][%d] = [%d] ", i, j, price[i][j]);
		}
		printf("\n");
	}
	/* 商品满意度打印 */
	for(int i = 0; i < m; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			printf("value[%d][%d] = [%d] ", i, j, value[i][j]);
		}
		printf("\n");
	}
#endif
	
	/* 用N元钱获取最大的满意度 */
	int dp[m+1][N+1];
	memset(dp, 0, (m+1)*(N+1)*sizeof(int));
	
	int max_value = 0;
	for(int i = 1; i < m+1; i++)
	{
		for(int j = 1; j < N+1; j++)
		{
			max_value = dp[i-1][j];//默认满意度最大的为前i件物品
			for(int k = 0; k < 4; k++)
			{
				if(k > 0 && price[i-1][k] == price[i-1][0])	//说明该物品没有附件
				{
					break;
				}
				if(j - price[i-1][k] >= 0)	//说明N元足够购买当前物品
				{
					max_value = MAX(max_value, dp[i-1][j-price[i-1][k]] + value[i-1][k]);
				}
			}
			dp[i][j] = max_value;
		}
	}
#if 0
    /* 打印所有的满意度 */
    for(int i = 0; i < m+1; i++)
	{
		for(int j = 0; j < N+1; j++)
		{
			printf("dp[%d][%d] = [%d] ", i, j, dp[i][j]);
		}
		printf("\n");
	}
#endif
	printf("%d\n", dp[m][N] * 10);
	return 0;
}