fn main() { let mut abcd = String::new(); std::io::stdin().read_line(&mut abcd).ok(); let abcd: Vec = abcd.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let a = abcd[0]; let b = abcd[1]; let _c = abcd[2]; let d = abcd[3]; if d >= 10 { println!("Impossible"); } else { let mut result: isize = 0; result += if b > 100 { 5000 } else if a + b > 100 { 50*b + (100-b)*100 } else { 50*b + 100*a }; for i in 101..=(a+b) { let multi: u32 = ((i-1) / 100) as u32; let multi: isize = 2i32.pow(multi) as isize; result += multi * if i <= b { 50 } else { 100 }; } println!("Possible"); println!("{}", result); } }