#include <stdio.h>
#include <stdlib.h>
typedef struct _ANT
{
    int pos;
    int flags;
} ANT;
#define AF_ILL 1
#define AF_OUT 2
// 判断蚂蚁i是否与另一只蚂蚁相遇
// n为蚂蚁总数
// 返回值: 相遇的另一只蚂蚁的序号
// 如果没有相遇的蚂蚁, 返回-1
int meet(ANT *ants, int n, int i)
{
    int j;
    for (j = 0; j < n; j++)
    {
        if (j == i || (ants[j].flags & AF_OUT))
            continue;
        if (abs(ants[j].pos) == abs(ants[i].pos))
            return j;
    }
    return -1;
}
void meetcheck(ANT *ants, int n, int i, int *pIll)
{
    int a = meet(ants, n, i);
    if (a == -1)
        return;
    ants[i].pos--;
    ants[a].pos--;
    ants[i].pos = -ants[i].pos;
    ants[a].pos = -ants[a].pos;
    // 感冒判定
    if ((ants[i].flags & AF_ILL) && !(ants[a].flags & AF_ILL))
    {
        ants[a].flags |= AF_ILL;
        (*pIll)++;
    }
    if ((ants[a].flags & AF_ILL) && !(ants[i].flags & AF_ILL))
    {
        ants[i].flags |= AF_ILL;
        (*pIll)++;
    }
}
// 返回值: out的增加值
int walk(ANT *ants, int n, int i, int *pIll)
{
    if (ants[i].flags & AF_OUT)
        return 0;
    ants[i].pos++;
    meetcheck(ants, n, i, pIll);
    if (ants[i].pos == 0 || abs(ants[i].pos) >= 100)
    {
        ants[i].flags |= AF_OUT;
        return 1;
    }
    return 0;
}
int main()
{
    int n, i;
    int ill = 1;
    int out = 0;
    ANT *ants;
    scanf_s("%d", &n);
    ants = (ANT *)malloc(n * sizeof(ANT));
    for (i = 0; i < n; i++)
    {
        scanf_s("%d", &ants[i].pos);
        if (i == 0)
            ants[i].flags = AF_ILL;
        else
            ants[i].flags = 0;
    }
    while (out < n)
    {
        for (i = 0; i < n; i++)
            out += walk(ants, n, i, &ill);
    }
    printf("%d\n", ill);
    free(ants);
    return 0;
}
      

