/*
* Author: Geeza
*/
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
const double PI = acos(-1);
const int N = 2e3+10;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int MOD = 1000000007, inf = 1e18;
string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
// int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
// int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};
vector<vector<int>> adj;
vector<int> color;
int x, y;
int dfs(int u, int c) {
color[u] = c;
if (color[u] == 0) x++;
if (color[u] == 1) y++;
for (auto v : adj[u]) {
if (color[v] == -1)
dfs(v, c^1);
}
return (x>0 && y > 0 && x != y);
}
void solve() {
int n; cin >> n;
vector<array<ll, 3>> v;
fin(0, n) {
ll x, y, r; cin >> x >> y >> r;
v.push_back({x, y, r});
}
adj = vector<vector<int>>(n+1);
color.assign(n+1, -1);
for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v.size(); j++) {
if (i == j)continue;
ll dx = v[i][0]-v[j][0], dy = v[i][1]-v[j][1];
ll dist = dx*dx + dy*dy;
ll r = v[i][2]+v[j][2];
if (r*r == dist) {
adj[i].push_back(j);
adj[j].push_back(i);
}
}
}
fin(0, n) {
if (color[i] == -1) {
if (dfs(i, 0) > 0) {
x = 0, y = 0;
return void(cout << "YES\n");
}
}
}
cout << "NO\n";
}
int main() {
FAST;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int tt = 1; //cin >> tt;
while (tt--) {
solve();
//cout << "Case #" << c++ << ": ";
}
return 0;
}
LyoKKiBBdXRob3I6IEdlZXphCiAqLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmluKGEsIG4pIGZvcihpbnQgaSA9IGE7IGkgPCBuOyBpKyspCiNkZWZpbmUgZmpuKGEsIG4pIGZvcihpbnQgaiA9IGE7IGogPCBuOyBqKyspCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgYWxscihhKSBhLnJiZWdpbigpLGEucmVuZCgpCiNkZWZpbmUgRkFTVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY2luLnRpZShudWxscHRyKSwgY291dC50aWUobnVsbHB0cikKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBkb3VibGUgUEkgPSBhY29zKC0xKTsKY29uc3QgaW50IE4gPSAyZTMrMTA7CmNvbnN0IGxsIG9vID0gMHgzZjNmM2YzZjNmM2YzZjNmOwpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDAwNywgaW5mID0gMWUxODsKCnN0cmluZyBkaVtdID0geyJEIiwiTCIsICJVIiwgIlIiLCAiVUwiLCAiVVIiLCAiREwiLCAiRFIifTsKLy8gaW50IGR4W10gPSB7KzEsICswLCArMCwgLTEsIC0xLCAtMSwgKzEsICsxfTsKLy8gaW50IGR5W10gPSB7KzAsIC0xLCArMSwgKzAsIC0xLCArMSwgLTEsICsxfTsKY2hhciBkY1tdID0geydEJywgJ0wnLCAnUicsICdVJ307Cgp2ZWN0b3I8dmVjdG9yPGludD4+IGFkajsKdmVjdG9yPGludD4gY29sb3I7CmludCB4LCB5OwppbnQgZGZzKGludCB1LCBpbnQgYykgewogICAgY29sb3JbdV0gPSBjOwogICAgaWYgKGNvbG9yW3VdID09IDApIHgrKzsKICAgIGlmIChjb2xvclt1XSA9PSAxKSB5Kys7CiAgICBmb3IgKGF1dG8gdiA6IGFkalt1XSkgewogICAgICAgIGlmIChjb2xvclt2XSA9PSAtMSkKICAgICAgICAgICAgZGZzKHYsIGNeMSk7CiAgICB9CiAgICByZXR1cm4gKHg+MCAmJiB5ID4gMCAmJiB4ICE9IHkpOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IG47IGNpbiA+PiBuOwogICAgdmVjdG9yPGFycmF5PGxsLCAzPj4gdjsKICAgIGZpbigwLCBuKSB7CiAgICAgICAgbGwgeCwgeSwgcjsgY2luID4+IHggPj4geSA+PiByOwogICAgICAgIHYucHVzaF9iYWNrKHt4LCB5LCByfSk7CiAgICB9CiAgICBhZGogPSB2ZWN0b3I8dmVjdG9yPGludD4+KG4rMSk7CiAgICBjb2xvci5hc3NpZ24obisxLCAtMSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHYuc2l6ZSgpOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHYuc2l6ZSgpOyBqKyspIHsKICAgICAgICAgICAgaWYgKGkgPT0gailjb250aW51ZTsKICAgICAgICAgICAgbGwgZHggPSB2W2ldWzBdLXZbal1bMF0sIGR5ID0gdltpXVsxXS12W2pdWzFdOwogICAgICAgICAgICBsbCBkaXN0ID0gZHgqZHggKyBkeSpkeTsKICAgICAgICAgICAgbGwgciA9IHZbaV1bMl0rdltqXVsyXTsKICAgICAgICAgICAgaWYgKHIqciA9PSBkaXN0KSB7CiAgICAgICAgICAgICAgICBhZGpbaV0ucHVzaF9iYWNrKGopOwogICAgICAgICAgICAgICAgYWRqW2pdLnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmaW4oMCwgbikgewogICAgICAgIGlmIChjb2xvcltpXSA9PSAtMSkgewogICAgICAgICAgICBpZiAoZGZzKGksIDApID4gMCkgewogICAgICAgICAgICAgICAgeCA9IDAsIHkgPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuIHZvaWQoY291dCA8PCAiWUVTXG4iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJOT1xuIjsKfQoKaW50IG1haW4oKSB7CiAgICBGQVNUOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKICAgIGludCB0dCA9IDE7IC8vY2luID4+IHR0OwogICAgd2hpbGUgKHR0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgICAgIC8vY291dCA8PCAiQ2FzZSAjIiA8PCBjKysgPDwgIjogIjsKICAgIH0KICAgIHJldHVybiAwOwp9