Practiced this puzzle. Managed to get it down to 21 secs 50 milliseconds.
Re-timed by frames - Geshode