fn main() { let mut temp = String::new(); std::io::stdin().read_line(&mut temp).ok(); let temp = temp.trim().chars().rev().enumerate().map(|(i, c)| (c as usize - 'A' as usize + 10) * (1 << (i%3))).collect::>(); let mut rest = 0usize; let mut cnts = vec![0usize; 8]; for i in 0..temp.len() { let val = temp[i] + rest; cnts[val%8] += 1; if i % 3 == 2 { cnts[val/8] += 1; rest = 0; } else { rest = val / 8; } } if rest > 0 { cnts[rest] += 1; } let maxval = *cnts.iter().max().unwrap(); let result = (0..8).filter(|&i| cnts[i] == maxval).map(|v| v.to_string()).collect::>().join(" "); println!("{}", result); }