#include <iostream>
#include <vector>
#include <set>
using namespace std;
typedef pair<int, int> pi;
bool reachable(pi m, pi n, int p)
{
int dx = m.first - n.first, dy = m.second - n.second;
if (p * p > dx * dx + dy * dy)
return true;
return false;
}
int dfs(int i, vector<pi> v, vector<int> power, set<int> not_allowed)
{
not_allowed.insert(i);
int count = 0;
vector<pi> neighbors;
vector<int> neighbors_power;
for (int j = 0; j < v.size(); j++)
{
if (reachable(v[i], v[j], power[i]) && not_allowed.count(j) == 0)
{
neighbors.push_back(v[j]);
neighbors_power.push_back(power[j]);
cout << v[i].first << " " << v[j].first << " " << v[i].second << " " << v[j].second << "\n";
}
}
for (int j = 0; j < neighbors.size(); j++)
{
count++;
//count += dfs(j, v, power, not_allowed);
}
return count;
}
int main() {
int N;
cin >> N;
vector<pi> v;
vector<int> power;
for (int i = 0; i < N; i++)
{
int x, y, p;
cin >> x >> y >> p;
v.push_back(pi(x, y));
power.push_back(p);
}
int max = 0;
for (int i = 0; i < N; i++)
{
set<int> not_allowed;
not_allowed.insert(i);
int d = dfs(i, v, power, not_allowed) + 1;
if (d > max)
max = d;
}
cout << max << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaTsKIApib29sIHJlYWNoYWJsZShwaSBtLCBwaSBuLCBpbnQgcCkKewoJaW50IGR4ID0gbS5maXJzdCAtIG4uZmlyc3QsIGR5ID0gbS5zZWNvbmQgLSBuLnNlY29uZDsKIAoJaWYgKHAgKiBwID4gZHggKiBkeCArIGR5ICogZHkpCgkJcmV0dXJuIHRydWU7CglyZXR1cm4gZmFsc2U7Cn0KIAppbnQgZGZzKGludCBpLCB2ZWN0b3I8cGk+IHYsIHZlY3RvcjxpbnQ+IHBvd2VyLCBzZXQ8aW50PiBub3RfYWxsb3dlZCkKewoJbm90X2FsbG93ZWQuaW5zZXJ0KGkpOwoJaW50IGNvdW50ID0gMDsKCXZlY3RvcjxwaT4gbmVpZ2hib3JzOwoJdmVjdG9yPGludD4gbmVpZ2hib3JzX3Bvd2VyOwogCglmb3IgKGludCBqID0gMDsgaiA8IHYuc2l6ZSgpOyBqKyspCgl7CgkJaWYgKHJlYWNoYWJsZSh2W2ldLCB2W2pdLCBwb3dlcltpXSkgJiYgbm90X2FsbG93ZWQuY291bnQoaikgPT0gMCkKCQl7CgkJCW5laWdoYm9ycy5wdXNoX2JhY2sodltqXSk7CgkJCW5laWdoYm9yc19wb3dlci5wdXNoX2JhY2socG93ZXJbal0pOwoJCQljb3V0IDw8IHZbaV0uZmlyc3QgPDwgIiAiIDw8IHZbal0uZmlyc3QgPDwgIiAiIDw8IHZbaV0uc2Vjb25kIDw8ICIgIiA8PCB2W2pdLnNlY29uZCA8PCAiXG4iOwoJCX0KCX0KCQoJZm9yIChpbnQgaiA9IDA7IGogPCBuZWlnaGJvcnMuc2l6ZSgpOyBqKyspCgl7CgkJY291bnQrKzsKCQkvL2NvdW50ICs9IGRmcyhqLCB2LCBwb3dlciwgbm90X2FsbG93ZWQpOwoJfQogCglyZXR1cm4gY291bnQ7Cn0KIAppbnQgbWFpbigpIHsKCWludCBOOwoJY2luID4+IE47CiAKCXZlY3RvcjxwaT4gdjsKCXZlY3RvcjxpbnQ+IHBvd2VyOwogCglmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykKCXsKCQlpbnQgeCwgeSwgcDsKCQljaW4gPj4geCA+PiB5ID4+IHA7CiAKCQl2LnB1c2hfYmFjayhwaSh4LCB5KSk7CgkJcG93ZXIucHVzaF9iYWNrKHApOwoJfQogCglpbnQgbWF4ID0gMDsKIAoJZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgl7CgkJc2V0PGludD4gbm90X2FsbG93ZWQ7CgkJbm90X2FsbG93ZWQuaW5zZXJ0KGkpOwoJCWludCBkID0gZGZzKGksIHYsIHBvd2VyLCBub3RfYWxsb3dlZCkgKyAxOwoJCWlmIChkID4gbWF4KQoJCQltYXggPSBkOwoJfQogCgljb3V0IDw8IG1heCA8PCAiXG4iOwogCglyZXR1cm4gMDsKfQ==