#include <bits/stdc++.h>
using namespace std;
int v[5000 + 5], d[5000 + 5][5000 + 5];
int md[100000 + 5], mm[10];
void umax(int &a, int b) { a = max(a, b); }
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  int i, j, z, ans = 0;
  for (i = 1; i <= n; i++) cin >> v[i];
  for (j = 0; j <= n; j++) {
    fill(begin(md), end(md), -1);
    fill(begin(mm), end(mm), -1);
    for (i = 1; i < j; i++) {
      umax(md[v[i]], d[j][i]);
      umax(mm[v[i] % 7], d[j][i]);
    }
    for (i = j + 1; i <= n; i++) {
      umax(d[i][j], 1 + md[v[i] - 1]);
      umax(d[i][j], 1 + md[v[i] + 1]);
      umax(d[i][j], 1 + mm[v[i] % 7]);
      umax(d[i][j], 1 + d[j][0]);
      umax(md[v[i]], d[i][j]);
      umax(mm[v[i] % 7], d[i][j]);
      umax(ans, d[i][j]);
    }
  }
  cout << ans;
  return 0;
}
