#include
using namespace std;
long long s[50007];
int pre[7],suf[7];
int main(){
int n;
cin>>n;
cin>>s[1];
for(int i = 2;i<=n;i++){
int tmp;
cin>>tmp;
s[i] = s[i-1] + tmp;
}
memset(pre,-1,sizeof(pre));
memset(suf,-1,sizeof(suf));
for(int i = 0;i<=n;i++){
if(!~pre[s[i]%7]) pre[s[i]%7] = i;///0~6余数的最先出现位置
if(!~suf[s[n-i]%7]) suf[s[n-i]%7] = n - i;///0~6余数的最后出现位置
///O(n),能找到端点为同一个余数的最大区间
///由于要找到余数为0的区间,则端点一定是余数相同的,所以先找到7个余数的端点的最大区间,然后再求它们最大区间的最大值即可
}
int ans = 0;
for(int i = 0;i<=6;i++){
ans = max(ans,suf[i] - pre[i]);
}
cout<