fn read() -> Vec { let mut s = String::new(); std::io::stdin().read_line(&mut s).unwrap(); s.trim().bytes().map(|x| x - b'0').collect::>() } fn main() { let a = read().into_iter().rev().collect::>(); let b = read().into_iter().rev().collect::>(); let mut carry = 0; let mut ans = String::new(); for i in 0..a.len().max(b.len()) { let mut tmp = carry; carry = 0; if i < a.len() { tmp += a[i]; } if i < b.len() { tmp += b[i]; } if tmp >= 10 { tmp -= 10; carry = 1; } ans = format!("{}{}", tmp, ans); } if carry > 0 { ans = format!("{}{}", carry, ans); } println!("{}", ans); }