#include <bits/stdc++.h>
using namespace std;
long long n, a[1005];
map<long long, int> x;
int ans;
void f(long long a, long long b) {
  long long cur = a + b;
  vector<long long> q;
  q.push_back(a);
  q.push_back(b);
  int len = 2;
  x[a]--;
  x[b]--;
  while (x[cur] > 0) {
    x[cur]--;
    q.push_back(cur);
    a = b;
    b = cur;
    cur = a + b;
    len++;
  }
  ans = max(len, ans);
  for (int i = 0; i < q.size(); i++) x[q[i]]++;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    x[a[i]]++;
  }
  ans = x[0];
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      if (a[i] == a[j] && a[i] == 0) continue;
      f(a[i], a[j]);
      f(a[j], a[i]);
    }
  }
  cout << ans;
}
