#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000 + 10;
const int up = 1e5 + 10;
int a[maxn];
int maxmod[8];
int maxloc[up];
int f[maxn][maxn];
int main(int argc, char **argv) {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  int ans = 0;
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j < 7; j++) maxmod[j] = 0;
    for (int j = 1; j <= n; j++) maxloc[a[j]] = 0;
    for (int j = 1; j < i; j++) {
      maxmod[a[j] % 7] = max(maxmod[a[j] % 7], f[j][i]);
      maxloc[a[j]] = max(maxloc[a[j]], f[j][i]);
    }
    for (int j = i + 1; j <= n; j++) {
      f[i][j] =
          max(maxmod[a[j] % 7], max(maxloc[a[j] - 1], maxloc[a[j] + 1])) + 1;
      f[i][j] = max(f[0][i] + 1, f[i][j]);
      maxmod[a[j] % 7] = f[i][j];
      maxloc[a[j]] = max(maxloc[a[j]], f[i][j]);
      ans = max(ans, f[i][j]);
    }
  }
  cout << ans << endl;
  return 0;
}
