#include <bits/stdc++.h>   using namespace std;   long long int gcd(long long int a, long long int b) {     return b ? gcd(b, a % b) : a;   }   long long int lcm(long long int a, long long int b) {     return a * b / gcd(a, b);   }   int n, m, cnt[11][11], a[22], b[22], tr[11], mx;   void bktk(int i) {     if (i == n + 1) {       int ans = 0;       memset(cnt, 0, sizeof(cnt));       for (int j = 1; j <= m; j++)         cnt[min(tr[a[j]], tr[b[j]])][max(tr[b[j]], tr[a[j]])]++;       for (int j = 1; j <= 6; j++)         for (int k = 1; k <= 6; k++)           if (cnt[j][k]) ans++;       mx = max(ans, mx);       return;     }     for (int j = 1; j <= 6; j++) {       tr[i] = j;       bktk(i + 1);     }   }   int main() {     cin >> n >> m;     if (n < 7) {       cout << m << endl;       return 0;     }     for (int i = 1; i <= m; i++) cin >> a[i] >> b[i];     bktk(1);     cout << mx << endl;     return 0;   }   