use std::cmp::max; use std::io; use std::io::{Write, BufRead}; pub fn main(){ let test_cases:u32; let stdin = io::stdin(); let mut INPUT = io::BufReader::new(stdin.lock()).lines().map(Result::unwrap); let mut OUTPUT = io::BufWriter::new(io::stdout().lock()); // test_cases = INPUT.next().unwrap().parse().unwrap(); let inp = INPUT.next().unwrap(); let Avec = inp.split_ascii_whitespace().map(|x| x.parse::().unwrap()).collect::>(); let Bvec = INPUT.next().unwrap().split_ascii_whitespace().map(|x| x.parse::().unwrap()).collect::>(); let cx = Avec[1]*Bvec[2] - Avec[2]*Bvec[1]; let cy = Avec[2]*Bvec[0] - Avec[0]*Bvec[2]; let cz = Avec[0]*Bvec[1] - Avec[1]*Bvec[0]; writeln!(OUTPUT, "{} {} {}", cx, cy, cz).unwrap(); // for _ in 0..test_cases{ // let inp = INPUT.next().unwrap(); // let mut inpit = inp.split_ascii_whitespace(); // let n: u64 = inpit.next().unwrap().parse().unwrap(); // let m:u64 = inpit.next().unwrap().parse().unwrap(); // let mut an = n+m; // let mut ans =0u64; // let mr = 2*m; // let mut curr = 0u64; let mut rpow = 1u64; // while an !=0 { // if an & 1 ==1 { // ans += rpow; // curr += rpow; // } else { // if curr < mr {ans += rpow;} // } // an/=2; rpow *=2; // } // writeln!(OUTPUT, "{}", ans).unwrap(); // } }