#include <bits/stdc++.h>
using namespace std;
double round(double x) { return ((long long)(x * 1e8 + 0.5)) / 1e8; }
double x[5], y[5], r[5];
set<pair<double, double> > c[5];
set<pair<double, double> > u;
void intersection(int i, int j) {
  double d =
      sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
  if ((d <= r[i] + r[j] && d >= abs(r[i] - r[j]))) {
  } else {
    return;
  }
  double a, h, x1, y1, x2, y2, _x, _y;
  a = (r[i] * r[i] - r[j] * r[j] + d * d) / (2 * d);
  h = sqrt(r[i] * r[i] - a * a);
  _x = x[i] + a * (x[j] - x[i]) / d;
  _y = y[i] + a * (y[j] - y[i]) / d;
  x1 = _x + h * (y[j] - y[i]) / d;
  y1 = _y - h * (x[j] - x[i]) / d;
  x2 = _x - h * (y[j] - y[i]) / d;
  y2 = _y + h * (x[j] - x[i]) / d;
  x1 = round(x1);
  x2 = round(x2);
  y1 = round(y1);
  y2 = round(y2);
  c[i].insert({x1, y1});
  c[i].insert({x2, y2});
  c[j].insert({x2, y2});
  c[j].insert({x1, y1});
  u.insert({x1, y1});
  u.insert({x2, y2});
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i] >> y[i] >> r[i];
  }
  if (n == 1) {
    cout << 2 << endl;
    return 0;
  } else if (n == 2) {
    intersection(0, 1);
    if (u.size() == 2) {
      cout << 4 << endl;
    } else
      cout << 3 << endl;
    return 0;
  }
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      intersection(i, j);
    }
  }
  int v = u.size();
  if (v == 0) {
    cout << 4 << endl;
    return 0;
  }
  int cc = 0;
  int e = 0;
  for (int i = 0; i < n; i++) {
    e += c[i].size();
    if (c[i].size() == 0) {
      cc++;
    }
  }
  int f = e - v + 2 + cc;
  cout << f << endl;
}
