Canyon defeats Clarendon 46-31