'''
解题思路:
动态规划:带条件的0-1背包问题
'''
#==========================================
# 读入原始数据,背包数除10

w_max,n = map(int,input().strip().split())
w_max = w_max//10
#print('w_max=',w_max,'n=',n)
T = []
for i in range(n):
    v,w,q = map(int,input().strip().split())
    T.append([v//10,w*v//10,q])
#print('T=',T)

#==========================================
# 处理主件

W = [[] for _ in range(n)]
V = [[] for _ in range(n)]
I = []
for i in range(n):
    if T[i][2]==0:
        W[i].append(T[i][0])
        V[i].append(T[i][1])
        I.append(i)
#print('W=',W)
#print('V=',V)
#print('I=',I)

#==========================================
# 处理附件

for i in range(n):
    if T[i][2]>0:
        ii = T[i][2]-1
        W[ii].append(T[i][0])
        V[ii].append(T[i][1])
#print('W=',W)
#print('V=',V)

#==========================================
# 附件的排列组合

for i in range(n):
    if len(W[i])==2:
        W[i] = [W[i][0], W[i][0]+W[i][1]]
        V[i] = [V[i][0], V[i][0]+V[i][1]]
    if len(W[i])==3:
        W[i] = [W[i][0], W[i][0]+W[i][1], W[i][0]+W[i][2], W[i][0]+W[i][1]+W[i][2]]
        V[i] = [V[i][0], V[i][0]+V[i][1], V[i][0]+V[i][2], V[i][0]+V[i][1]+V[i][2]]
#print('W=',W)
#print('V=',V)

#==========================================

DP = [[0]*(w_max+1) for _ in range(len(I)+1)]
for i in range(1,len(I)+1):
    ii = I[i-1]
    for j in range(1,w_max+1):
        t_max = DP[i-1][j]
        for k in range(len(W[ii])):
            W_i = W[ii][k]
            V_i = V[ii][k]        
            if j>=W_i:
                t_max = max(t_max, DP[i-1][j-W_i]+V_i)
        DP[i][j] = t_max
#print('DP=',DP)    
print(DP[-1][-1]*10) 


#=================================================================================

'''
# https://blog.csdn.net/qq_38410730/article/details/81667885

n = 4
w_max = 8
W = [0,2,3,4,5]
V = [0,3,4,5,6]

DP = [[0]*(w_max+1) for i in range(n+1)]
for i in range(1, n+1):
    for j in range(1, w_max+1):
        if j<W[i]:
            DP[i][j] = DP[i-1][j]
        else:
            DP[i][j] = max(DP[i-1][j], DP[i-1][j-W[i]]+V[i])

print(DP[n][w_max])

select = []
j = w_max
for i in range(n,0,-1):
    if DP[i][j]>DP[i-1][j]:
        select.append(i)
        j = j-W[i]
print(select)
'''
#===============================================================