#include <cstring>
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int a[n], f[n], g[n];
for(int i = 0; i < n; i ++){
cin >> a[i];
}
memset(f, 0, sizeof f);
memset(g, 0, sizeof g);
if(a[0] > 0) f[0] = 1;
else if(a[0] < 0) g[0] = 1;
int maxN = 0;
for(int i = 1; i < n; i ++){
// 如果当前元素 > 0
if(a[i] > 0){
// 正数乘积数组长度 + 1
f[i] = f[i - 1] + 1;
// 如果负数乘积长度数组 > 0 即乘积现在为负数又遇到了一个正数 乘积还是负数所以长度加1
if(g[i - 1] > 0) g[i] = g[i - 1] + 1;
// 如果负数乘积长度为0 现在又遇到一个整数 还是为0
else g[i] = 0;
}
// 如果当前遇到的元素 < 0
else if(a[i] < 0){
// 负数乘积长度数组变成 正数的乘积长度 + 1
g[i] = f[i - 1] + 1;
// 如果负数乘积长度 > 0
if(g[i - 1] > 0) f[i] = g[i - 1] + 1;
// 否则乘积还是为负数 正数乘积长度为0
else f[i] = 0;
}
else f[i] = g[i] = 0;
maxN = max(maxN, f[i]);
}
cout << maxN << endl;
return 0;
}