#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
long long x;
int ans = 0;
int start = 0; // 当前段起点(上一个0的下一个位置)
int cntNeg = 0; // 当前段负数个数
int firstNeg = -1, lastNeg = -1; // 首/末个负数位置
for (int i = 0; i < n; ++i) {
cin >> x;
if (x == 0) { // 结束一段
int end = i - 1, len = i - start;
if (len > 0) {
if ((cntNeg & 1) == 0) ans = max(ans, len);
else {
ans = max(ans, max(lastNeg - start, end - firstNeg));
}
}
// 重置新一段
start = i + 1;
cntNeg = 0;
firstNeg = lastNeg = -1;
} else {
if (x < 0) {
++cntNeg;
if (firstNeg == -1) firstNeg = i;
lastNeg = i;
}
}
}
// 最后一段结算
int end = n - 1, len = n - start;
if (len > 0) {
if ((cntNeg & 1) == 0) ans = max(ans, len);
else ans = max(ans, max(lastNeg - start, end - firstNeg));
}
cout << ans << '\n';
return 0;
}