#include<bits/stdc++.h>
using namespace std;
vector split (const string &s, char delim) {
vector result;
stringstream ss (s);
string item;
while (getline (ss, item, delim)) {
result.push_back (stoi(item));
}
return result;
}
int main() {
string input;
cin>>input;
string s = input.substr(1,input.length()-2);
map<int,vector> m;
vector v = split (s, ‘,’);
for(int i=0;i<v.size();i++){
m[v[i]].push_back(i);
}
int ans=2;
for(int i=0;i<v.size()-1;i++){
for(int j=i+1;j<v.size();j++){
int num1 = v[i];
int num2 = v[j];
int diff = num2-num1;
int pos = j;
int next_num = num2+diff;
int count = 2;
while(m.find(next_num)!=m.end()){
vectortemp = m[next_num];
bool flag = false;
for(int k=0;k<temp.size();k++){
if(pos<temp[k]){
pos=temp[k];
next_num = v[pos]+diff;
count++;
flag = true;
break;
}
}
if(!flag){
break;
}
}
ans = max(ans,count);
}
}
cout<<ans<<endl;
return 0;
}