 #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <cmath>
#include <stdio.h>
#include <list>
#include <numeric>
#include <stack>
#include <queue>
#include <tuple>
#include <bitset>
#include <map>
#include <math.h>
#include <cstring>
//ceil(a/b)   (a + (b - 1))/ b
using namespace std;
#define rep(i,n) for(int i = 0; i < (n); i++)
typedef long long ll;
typedef pair<int,int> P;
const int inf=1000000007;
const int mod=1e9 + 7;
const double PI=3.14159265358979323846;
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};




int main() {
    ll N;
    cin >> N;
    int x[N];
    int y[N];
    int ans = 0;
    rep(i,N) cin >> x[i] >> y[i];
    for(int i=0; i<N; i++) {
	for(int j=i+1; j<N; j++){
	    for(int k=j+1; k<N; k++) {
		int a,b,c,d;
		a = x[i] - x[k];
		b = y[i] - y[k];
		c = x[j] - x[k];
		d = y[j] - y[k];
		if(a*d == b*c) ans++;
	    }
	}
    }
    if(ans > 0) cout << "Yes" << endl;
    else cout << "No" << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){

    vector<ll>v1;
    ll n;
    cin>>n;
    ll a[n],b[n];
    for(ll i=0;i<n;i++){
        cin>>a[i];
        cin>>b[i];
        ll res=a[i]+b[i];
        v1.push_back(res);
    }
    ll res1=*min_element(a,a+n);
    ll res2=*min_element(b,b+n);
    ll store1,store2;
    for(ll i=0;i<n;i++){
        if(a[i]==res1){
            store1=i;
            break;
        }
    }

    for(ll i=0;i<n;i++){
        if(b[i]==res2){
            store2=i;
            break;
        }
    }
    ll finalres;
    if(store1!=store2){
        finalres=max(res1,res2);
    }
    else{
        sort(b,b+n);
        res2=b[1];
        finalres=max(res1,res2);
    }

    v1.push_back(finalres);

    ll check=*min_element(v1.begin(),v1.end());
    cout<<check<<endl;







}

