#[allow(dead_code)] mod io { use std::io::Read; use std::str::{FromStr, SplitWhitespace}; pub struct Scanner<'a>(SplitWhitespace<'a>); impl<'a> Scanner<'a> { pub fn new(buf: &'a mut String) -> Self { std::io::stdin().read_to_string(buf).ok(); Self(buf.split_whitespace()) } pub fn next(&mut self) -> T { self.0.next().unwrap().parse().ok().unwrap() } } pub fn vec T>(f: F, n: usize) -> Vec { std::iter::repeat_with(f).take(n).collect() } } fn main() { let ref mut buf = String::new(); let mut sc = io::Scanner::new(buf); let (a, b) = (sc.next::(), sc.next::()); let ans = (a | b) + (a & b); println!("{}", ans); }