The Gyarados. Do not teach it Ice beam. It will not be beneficial, since it is better to use attack based moves with it. Gyarados has the capability to use dragon dance. If you manage to use dragon dance 3 times, you will be able to beat an entire team of pokemon of a similar level with the Gyarados without counter attack. Also, Gyarados has higher stats and the ability intimidate, which lowers enemy attack, to keep it alive and deadly longer.
An offensive Gyarados' moves should look like Dragon Dance, Water Fall, Ice Fang and Stone edge. Given the nature of this question, I'll assume that you won't have the knowledge to use Gyarados to his full capabilities any ways, but none the less, it will still prove to be a much better pokemon.