#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;
}