#include<stdio.h> int shangpin[20]; int p[10][4]; int vlue; int data[10]; int n,m; void dfs(int step,int money){ if(step==n){ if(money>vlue) vlue=money; return; } for(int j=0;j<5;j++){ //每个人五种情况 不买、买两个(3)、买三个 if(j==0){ //买两个商品 0与1 if(shangpin[p[step][0]]==1||shangpin[p[step][1]]==1) continue; else { shangpin[p[step][0]]=1; shangpin[p[step][1]]=1; money+=2*p[step][3]; dfs(step+1,money); shangpin[p[step][0]]=0; shangpin[p[step][1]]=0; money-=2*p[step][3]; } } if(j==1){ //买两个商品 1与2 if(shangpin[p[step][2]]==1||shangpin[p[step][1]]==1) continue; else { shangpin[p[step][2]]=1; shangpin[p[step][1]]=1; money+=2*p[step][3]; dfs(step+1,money); shangpin[p[step][2]]=0; shangpin[p[step][1]]=0; money-=2*p[step][3]; } } if(j==2){ //买两个商品 0和2 if(shangpin[p[step][0]]==1||shangpin[p[step][2]]==1) continue; else { shangpin[p[step][0]]=1; shangpin[p[step][2]]=1; money+=2*p[step][3]; dfs(step+1,money); shangpin[p[step][0]]=0; shangpin[p[step][2]]=0; money-=2*p[step][3]; } } if(j==3){ //买三个商品商品 0 1和2 if(shangpin[p[step][0]]==1||shangpin[p[step][1]]==1||shangpin[p[step][2]]==1) continue; else { shangpin[p[step][0]]=1; shangpin[p[step][1]]=1; shangpin[p[step][2]]=1; money+=3*p[step][3]; dfs(step+1,money); shangpin[p[step][0]]=0; shangpin[p[step][1]]=0; shangpin[p[step][2]]=0; money-=3*p[step][3]; } } if(j==4){ dfs(step+1,money); } } } int main(){ scanf("%d%d",&n,&m); for(int i=0;i<m;i++) scanf("%d%d%d%d",&p[i][0],&p[i][1],&p[i][2],&p[i][3]); dfs(0,0); printf("%d",vlue); }