#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n, Ans = 1;
cin>>n;
vector<pair<int, int>> v(n);
vector<int> v1, v2;
for (auto &[i, j] : v)
cin>>i>>j;
sort(begin(v), end(v));
for (auto [l, r] : v){
while (v1.size() > 0 and v1.back() < l)
v1.pop_back();
while (v2.size() > 0 and v2.back() < l)
v2.pop_back();
int X = 0;
if (v1.size() == 0 or r < v1.back())
X |= 1;
if (v2.size() == 0 or r < v2.back())
X |= 2;
if (X == 3)
Ans = Ans * 2, Ans -= (Ans > 1000000007) * 1000000007;
if (X & 1)
v1.push_back(r);
else if (X & 2)
v2.push_back(r);
else
return cout<<0, 0;
}
cout<<Ans<<endl;
}