#include<bits/stdc++.h>
using namespace std;

int main() {

	int N,i,j;
	cin >> N;

	// 2つの整数の組(座標)の配列
	vector< pair<int,int> > r(N),b(N);

	// 入力
	for(i=0;i<N;i++) cin >> r[i].second >> r[i].first;
	for(i=0;i<N;i++) cin >> b[i].first  >> b[i].second;
	
    // それぞれ昇順にソート
	sort(r.begin(),r.end());
	sort(b.begin(),b.end());
	
	// ペア用バケット
	vector<int> pair(N);
	
	int point, ans = 0;
	for(i = 0 ; i < N ; i++) {
	  
		bool f = false;
		for(j = 0 ; j < N ; j++) {
		  
			if( r[j].second < b[i].first && r[j].first < b[i].second) {
			// いま注目している青点より左下にある赤点に注目
			
				if(pair[j] == 0) {
				// r[j]がまだペアでないならj番目をペアに予約
					f = true;
					point = j;
				}
			}
		}
		if(f)
		{ans++; pair[point]=1;} //予約したjをバケットに追加
	}
	cout << ans << endl;

  return 0;
}