#![allow(unused_imports)] #![allow(dead_code)] #![allow(unused_variables)] #![allow(non_snake_case)] #![allow(special_module_name)] // use itertools::Itertools; use proconio::{fastout, input_interactive, marker::Chars}; use std::cmp::{max, min, Reverse}; use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, VecDeque}; #[cfg(feature = "local")] mod lib; const MOD: i64 = 998244353; const MOD17: i64 = 1_000_000_007; const INF: i64 = 1 << 60; #[fastout] fn main() { input_interactive! { n: usize, s: [Chars; n] } let mut set = HashSet::new(); for i in 0..n { for j in 0..n { if i == j { continue; } let mut a = s[i].clone(); let mut b = s[j].clone(); a.append(&mut b); set.insert(a); } } println!("{}", set.len()); }