# Distribute NonCommutativeMultiply over Times

Is there a method to transform

(a1 * a2) ** (b1 * b2)


into

(a1 ** b1) * (a2 ** b2)


I am trying to transform non-commutative products based on the number at the end of the variable in order to replace it with a NCReplace (from the NCAlgebra package) later.

Thread[(a1*a2) ** (b1*b2), Times]