//超时的
#include<iostream>
#include<vector>
using namespace std;
vector<int> a;
vector<int> b;
int n,x,y;
int main()
{
while( cin >> n && n ){
int t = 1;
for(int i = 0; i < n; i++){
cin >> x >> y;
a.push_back(x);
b.push_back(y);
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(a[i] == b[j] && a[j] ==b[i] && i != j)
a[i] = a[j] = b[i] = b[j] = 0;
}
}
for(int i = 0; i < n; i++)
if(a[i]) { t = 0; break; }
if(t) cout << "YES\n";
else cout << "NO\n";
a.clear();
b.clear();
}
return 0;
}
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct candidate{
int a;
int b;
};
vector<candidate>cd;
vector<candidate>excd;
int n;
candidate x;
bool compare(candidate x, candidate y){
if(x.a != y.a) return x.a < y.a;
else return x.b < y.b;
}
int main()
{
while( cin >> n && n){
int t = n;
for(int i = 0; i < n; i++){
cin >> x.a >> x.b;
cd.push_back(x);
swap(x.a, x.b);
excd.push_back(x);
}
sort(cd.begin(), cd.end(), compare);
sort(excd.begin(), excd.end(), compare);
for(int i = 0; i < n; i++)
if(cd[i].a == excd[i].a && cd[i].b) t--;
if(t) cout << "NO" << endl;
else cout << "YES" << endl;
cd.clear();
excd.clear();
}
return 0;
}