#include using namespace std; using ll = long long; ll gcd(ll a, ll b) { while (a) swap(b%=a, a); return b; } struct line { ll a = 0; ll b = 0; ll c = 0; line() = default; line(const pair & first, const pair & second) { ll dx = second.first - first.first; ll dy = second.second - first.second; a = dx; b = dy; ll midx = first.first + dx / 2; ll midy = first.second + dy / 2; c = -(a*midx + b*midy); ll g = gcd(gcd(a, b), c); a /= g; b /= g; c /= g; } bool operator<(const line & other) const { if (a != other.a) return a < other.a; if (b != other.b) return b < other.b; return c < other.c; } }; int main() { ll n, p; cin >> n >> p; vector> coords(n); for (ll i = 0; i < n; ++i) { cin >> coords[i].first >> coords[i].second; coords[i].first *= 2; coords[i].second *= 2; } if (p == 0) { cout << "YES\n"; return 0; } std::sort(coords.begin(), coords.end()); map> vectors; for (ll i = 0; i < n; ++i) { for (ll j = i+1; j < n; ++j) { line f(coords[i], coords[j]); if (vectors.count(f) == 0) vectors[f] = {}; vectors[f].insert(i); vectors[f].insert(j); if (vectors[f].size() >= n*p/100.) { cout << "YES\n"; return 0; } } } cout << "NO\n"; return 0; }