#include <bits/stdc++.h>
using namespace std ;
struct A{
int a , b ,c ;
string name ;
}mc[200] ;
int v[200] , p[200] ;
int m , n ;
int dp[200][200] ;
int main ( ){
cin >> m >> n ;
int k = 0 ;
for ( int i = 1 ; i <= n ; ++i ){
cin >> mc[++k].a >> mc[k].b >> mc[k].c >> mc[k].name ;
for ( int j = 1 ; j < k ; ++j ){
if ( mc[j].name == mc[k].name ){
mc[j].a += mc[k].a ;
--k ;
break ;
}
}
}
int maxn_v = 0 ;
for ( int i = 1 ; i <= k ; ++i ){
p[i] = mc[i].b ;
v[i] = ceil ( (double) mc[i].a /(double) mc[i].c ) ;
if ( v[i] > maxn_v ){
maxn_v = v[i] ;
}
}
for ( int i = 1 ; i <= k ; ++i ){
for ( int j = 1 ; j <= maxn_v ; ++j ){
if ( j <= v[i] ){
dp[i][j] = max ( dp[i-1][j], dp[i-1][j-1] + p[i] * j * mc[i].c ) ;
}else{
dp[i][j] = dp[i-1][j] ;
}
}
}
cout << dp[k][21-m] ;
return 0 ;
}