#include <bits/stdc++.h>
using namespace std;
int n;
int a[100100];
int nm[1001000];
int dp[4002][4002];
int t[4002][4002];
int main() {
  ios::sync_with_stdio(0);
  cin >> n;
  set<int> st;
  int num = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    if (!st.count(a[i])) nm[a[i]] = num++;
    st.insert(a[i]);
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < num; j++) {
      dp[j][nm[a[i]]] = dp[nm[a[i]]][j] + 1;
    }
  }
  int mx = 0;
  for (int i = 0; i < num; i++) {
    for (int j = 0; j < num; j++) {
      mx = max(mx, dp[i][j]);
    }
  }
  cout << mx << endl;
  return 0;
}
