#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,m,res=1,op_pos,op;
bool vis[N],_pos,_pos_;
struct node
{
int x,pos;
bool operator<(const node&w)const
{
return x<w.x;
}
}a[N];
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x;
if(a[i].x<0) a[i].pos=-1,a[i].x=-a[i].x;
else a[i].pos=1;
}
vis[a[1].x]=true,op=a[1].x,op_pos=a[1].pos;
if(op_pos==1) _pos=true;
else _pos_=true;
sort(a+1,a+1+n);
bool s=false;
for(int i=1;i<=n;i++) if(a[i].pos*op_pos<0) s=true;
if(!s||a[1].x==op&&op_pos==-1) return cout<<1<<endl,0;
for(int i=1;i<=n;i++){
if(a[i].x==op) continue;
if((a[i].x<op&&(op_pos==-1||_pos)&&a[i].pos==1)) res++,_pos_=true;
else if(a[i].x>op&&(op_pos==1||_pos_)&&a[i].pos==-1) res++,_pos=true;
}
cout<<res;
return 0;
}