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