#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0; i < n; i++)
#define REP(i,s,n) for(int i = s; i < n; i++)
#define all(x) (x).begin(),(x).end()
typedef long long ll;
using Graph = vector<vector<int>>;
const int INF = 1000000007;
int main(){
  int n;
  cin >> n;
  vector<pair<int,int>>xy(n);
  rep(i,n)cin >> xy[i].first >> xy[i].second;
  rep(i,n)REP(j,i + 1,n)REP(k,j + 1,n){
    auto [x1,y1] = xy[i];
    auto [x2,y2] = xy[j];
    auto [x3,y3] = xy[k];
    x1 -= x3;
    x2 -= x3;
    y1 -= y3;
    y2 -= y3;
    if(x1 * y2 == x2 * y1){
      cout << "Yes" << endl;
      return 0;
    }
  }
  cout << "No" << endl;
  return 0;
}

// CTRL+ALT+M 
#include <bits/stdc++.h>
using namespace std;
#define M 1000000007
#define int long long int
#define vi vector<int> 
#define vb vector<bool>
#define vc vector<char>
#define vpi vector<pair<int,int>>
#define pii pair<int,int>
#define pb push_back
#define inf 1e18
#define ff first
#define ss  second
#define deb(x) cout<<#x<<" "<<x<<endl;
#define all(x) x.begin(),x.end()
#define endl "\n"
const int maxn=1e5;
//*! look for binary search see if dp can fit or dp with bs 
//*? Set or Priority_queue
//*! Number is upto 10^5 check if a[maxn] gives something
//*? Graph Question depedencies Topo sort
//todo For a Tree its shortest Path in  dfs is same as in bfs if it is acyclic
// *! Bridge Detection:: From Backedge we take low[u]=min(low[u],tin[x]) 
// *! Bridge Detection:: From Child we take low[u]=min(low[u],low[x]) 
// *! Bridge Detection:: this is a bridge if(low[x]>tin[u]) 
// vi adj[maxn];
// int visited[maxn];
bool good(pii a,pii b,pii c)
{
  if((a.ff==b.ff && c.ff==b.ff)||(a.ss==b.ss && b.ss==c.ss))
  {
    return true;
  }
  int a1=b.ss-a.ss;
  int a2=b.ff-a.ff;
  int b1=c.ss-b.ss;
  int b2=c.ff-b.ff;
  if(a1*b2==a2*b1)
  {
    return true;
  }
  return false;
}
void runcases(int T)
{

  int n;
  cin>> n;
  vpi v(n);
  for(int i=0;i<n;i++){
    cin>>v[i].ff;
    cin>>v[i].ss;
  }
  for(int i=0;i<n;i++)
  {
    for(int j=i+1;j<n;j++)
    {
      for(int k=j+1;k<n;k++)
      {
          bool f= good(v[i],v[j],v[k]);
          if(f)
          {
            cout<<"Yes\n";
            return;
          }
      }
    }
  }
  cout<<"No\n";
  return;

  

  //cout<<"Case #"<<T<<": ";
}

int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int T = 1;
    //cin >> T;
    for (int t=1;t<=T; t++) {
        runcases(t);
    }

    return 0;
}
