// Expectation for test: 
// main(x) {
//   a() {
//     return x;
//   }
//   print(a());
// }

function(x) {
  P.print(x);
}
