#![allow(non_snake_case)] use std::io::{ self }; use std::iter::{ FromIterator }; fn readline() -> Vec { let mut s = String::new(); io::stdin().read_line(&mut s).expect("i/o error"); s.trim().chars().collect() } fn main() { let N = readline(); let M = readline(); let x = N.last().unwrap().to_digit(10).unwrap(); let y = match M.len() { 1 => String::from_iter(M[M.len()-1..].iter()).parse::().unwrap(), _ => String::from_iter(M[M.len()-2..].iter()).parse::().unwrap(), }; let ans = if y == 0 { 1 } else { x.pow(if y%4 == 0 { 4 } else { y%4 }) }; println!("{}", ans); }