#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;
}
