use proconio::input; fn solve() -> Vec<(u64, u64, u64)> { input! { t: usize, l: [u64; t], } let mut ans = Vec::with_capacity(t); for &li in l.iter() { let tz = li.trailing_zeros(); let lio = li >> tz; let abc = if lio == 1 { (3 << (tz - 2), 4 << (tz - 2), 5 << (tz - 2)) } else { let x = lio.pow(2) >> 1; (li, x << tz, (x + 1) << tz) }; ans.push(abc); assert!((abc.0 as u128).pow(2) + (abc.1 as u128).pow(2) == (abc.2 as u128).pow(2)); } ans } fn main() { let ans = solve(); for (x, y, z) in ans { println!("{} {} {}", x, y, z); } }