(lambda (b p m) (let me ((p p))(cond
   ((= p 0) 1)
   ((even? p)(let ((x (me (/ p 2))))(modulo (* x x) m)))
   (#t (modulo (* b (me (- p 1))) m)))))