Adding implementation of Cannon's algorithm