use std::collections::BTreeSet; use proconio::input; fn main() { input! { q: usize, abc: [(usize, usize, usize); q], } let mut v = BTreeSet::new(); let mut e = BTreeSet::new(); let mut f = BTreeSet::new(); for &(a, b, c) in &abc { v.extend([a, b, c]); e.extend([(a, b), (b, c), (a, c)]); f.insert((a, b, c)); } println!("{}", v.len() as i64 - e.len() as i64 + f.len() as i64); }