Dual Algorithmic Reasoning