#include<iostream>
#include<cstring>
using namespace std;
int A[100005],B[100005];
int C[100005];
int main()
{
int n;
cin>>n;
int i;
for(i=0;i<n;i++)
{
cin>>A[i]>>B[i];
}
int ans=n;
int flag=-1;
for(i=0;i<n;i++)
{
if(B[i]==1)
C[++flag]=A[i];
else
{
while(flag!=-1)
{
ans--;
if(C[flag]<A[i])
flag--;
else
break;
}
}
}
cout<<ans<<endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
stack<int> q;
int N,x,y,ans,i;
int main()
{
std::ios::sync_with_stdio(false);
cin>>N;
ans=N;
for(i=0;i<N;i++)
{
cin>>x>>y;
if(y==1)
q.push(x);
else
{
while(!q.empty())
{
if(x>q.top())
{
ans--;
q.pop();
}
else
{
ans--;
break;
}
}
}
}
cout<<ans<<endl;
}