use std::io::Read; fn main() { let mut all_data = String::new(); std::io::stdin().read_to_string(&mut all_data).ok(); let mut all_data = all_data.trim().split('\n').map(|s| s.trim()); let nm: Vec = all_data.next().unwrap().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n: usize = nm[0]; let opb: Vec<&str> = all_data.next().unwrap().split_whitespace().collect(); let b: Vec = opb.iter().skip(1).map(|s| s.parse().unwrap()).collect(); let op: &str = opb[0]; let a: Vec = all_data.take(n).map(|s| s.parse().unwrap()).collect(); for i in 0..n { println!( "{}" , b.iter() .map(|j| match op { "+" => a[i] + j, "*" => a[i] * j, _ => 0 }) .map(|s| s.to_string()) .collect::>() .join(" ") ); } }