( ( mod-power = base exponent modulus result . !arg:(?base,?exponent,?modulus) & !exponent:~<0 & 1:?result & whl ' ( !exponent:>0 & ( ( mod$(!exponent.2):1 & mod$(!result*!base.!modulus):?result & -1 | 0 ) + !exponent ) * 1/2 : ?exponent & mod$(!base^2.!modulus):?base ) & !result ) & ( a = 2988348162058574136915891421498819466320163312926952423791023078876139 ) & ( b = 2351399303373464486466122544523690094744975233415544072992656881240319 ) & out$("last 40 digits = " mod-power$(!a,!b,10^40)) )