#include <bits/stdc++.h>
using namespace std;
int p[100007], co[100007], mx[100007];
int find_parent(int x) { return p[x] = (p[x] == x) ? x : find_parent(p[x]); }
void union_set(int x, int y) {
  x = find_parent(x);
  y = find_parent(y);
  if (x == y) return;
  if (co[x] < co[y]) swap(x, y);
  co[x] += co[y];
  p[y] = x;
}
int main() {
  int n, i, j;
  string st;
  vector<char> v;
  for (i = 'a'; i <= 'z'; i++) p[i] = i, co[i] = 1;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> st;
    for (j = 0; j < st.size() - 1; j++) union_set(st[j], st[j + 1]);
    for (j = 0; j < st.size(); j++) v.push_back(st[j]);
  }
  set<int> s;
  for (i = 0; i < v.size(); i++) {
    int a = find_parent(v[i]);
    s.insert(a);
  }
  cout << s.size() << "\n";
  return 0;
}
