#include <bits/stdc++.h>
using namespace std;
int n, a[1111];
map<int, int> m;
map<int, int>::iterator it;
vector<int> v;
int main() {
  while (~scanf("%d", &n)) {
    m.clear();
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      m[a[i]]++;
    }
    sort(a + 1, a + n + 1);
    int ans = m[0];
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= n; j++)
        if (i != j && (a[i] != 0 || a[j] != 0)) {
          v.clear();
          v.push_back(a[i]), v.push_back(a[j]);
          m[a[i]]--, m[a[j]]--;
          int f0 = a[i], f1 = a[j], num = 2;
          while (1) {
            if (m[f0 + f1]) {
              m[f0 + f1]--, v.push_back(f0 + f1);
              num++;
              swap(f0, f1), f1 = f0 + f1;
            } else
              break;
          }
          ans = max(ans, num);
          for (int k = 0; k < v.size(); k++) m[v[k]]++;
        }
    printf("%d\n", ans);
  }
  return 0;
}
