(define abc (* (read) (read) (read))) (print (let loop([n (read)] [x abc]) (cond [(zero? n) x] [else (loop (- n 1) (remainder (* x x) 1000000007))])))