import math
def find(u, par):
if par[u] != u:
par[u] = find(par[u], par)
return par[u]
def union(u, v, par, size):
u_root = find(u, par)
v_root = find(v, par)
if u_root == v_root:
return
if size[u_root] < size[v_root]:
par[u_root] = v_root
size[v_root] += size[u_root]
else:
par[v_root] = u_root
size[u_root] += size[v_root]
def ip():
return map(int,input().split())
# T=int(input())
T=1
for __ in range(T):
n=int(input())
size=[1 for _ in range(26)]
par=[i for i in range(26)]
ct=[0 for _ in range(26)]
for _ in range(n):
s=str(input())
for j in range(1,len(s)):
union(ord(s[j])-ord('a'),ord(s[j-1])-ord('a'),par,size)
for j in s:
ct[ord(j)-ord('a')]+=1
st=set()
for i in range(26):
if ct[i]>0:
p=find(i,par)
if p not in st:
st.add(p)
print(len(st))
aW1wb3J0IG1hdGgKZGVmIGZpbmQodSwgcGFyKToKICAKICAgIGlmIHBhclt1XSAhPSB1OgogICAgICAgIHBhclt1XSA9IGZpbmQocGFyW3VdLCBwYXIpCiAgICByZXR1cm4gcGFyW3VdCgpkZWYgdW5pb24odSwgdiwgcGFyLCBzaXplKToKICAgIHVfcm9vdCA9IGZpbmQodSwgcGFyKQogICAgdl9yb290ID0gZmluZCh2LCBwYXIpCgogICAgaWYgdV9yb290ID09IHZfcm9vdDoKICAgICAgICByZXR1cm4gCgoKICAgIGlmIHNpemVbdV9yb290XSA8IHNpemVbdl9yb290XToKICAgICAgICBwYXJbdV9yb290XSA9IHZfcm9vdAogICAgICAgIHNpemVbdl9yb290XSArPSBzaXplW3Vfcm9vdF0KICAgIGVsc2U6CiAgICAgICAgcGFyW3Zfcm9vdF0gPSB1X3Jvb3QKICAgICAgICBzaXplW3Vfcm9vdF0gKz0gc2l6ZVt2X3Jvb3RdCgpkZWYgaXAoKToKICAgIHJldHVybiBtYXAoaW50LGlucHV0KCkuc3BsaXQoKSkKCgojIFQ9aW50KGlucHV0KCkpCgpUPTEKZm9yIF9fIGluIHJhbmdlKFQpOgogICAgbj1pbnQoaW5wdXQoKSkKICAgIHNpemU9WzEgZm9yIF8gaW4gcmFuZ2UoMjYpXQogICAgcGFyPVtpIGZvciBpIGluIHJhbmdlKDI2KV0gICAgICAgIAogICAgY3Q9WzAgZm9yIF8gaW4gcmFuZ2UoMjYpXQogICAgZm9yIF8gaW4gcmFuZ2Uobik6CiAgICAgICAgcz1zdHIoaW5wdXQoKSkKICAgICAgICBmb3IgaiBpbiByYW5nZSgxLGxlbihzKSk6CiAgICAgICAgICAgIHVuaW9uKG9yZChzW2pdKS1vcmQoJ2EnKSxvcmQoc1tqLTFdKS1vcmQoJ2EnKSxwYXIsc2l6ZSkKICAgICAgICAKICAgICAgICBmb3IgaiBpbiBzOgogICAgICAgICAgICBjdFtvcmQoaiktb3JkKCdhJyldKz0xCiAgICAgICAgCiAgICAKICAgIHN0PXNldCgpCiAgICBmb3IgaSBpbiByYW5nZSgyNik6CiAgICAgICAgaWYgY3RbaV0+MDoKICAgICAgICAgICAgcD1maW5kKGkscGFyKQogICAgICAgICAgICBpZiBwIG5vdCBpbiBzdDoKICAgICAgICAgICAgICAgIHN0LmFkZChwKQogICAgCiAgICBwcmludChsZW4oc3QpKQoK