Minimal group of Pokémon for the complete exploration moves set

pokemon-omega-ruby-alpha-sapphire

I own Pokémon Omega Ruby, not Pokémon Alpha Sapphire and I'm only starting it.

I'd like a team for exploration, catching and finishing the story.

I have my catcher, I'm building my hitters but I miss my explorers yet.

So my question is what is the smallest group possible of Pokémon I could use so that I can teach them all the story-needed moves? By that, I mean moves like Cut, Rock Smash, Surf, Fly, etc. Actually all moves that have a real impact to access all parts of the story and that must be used again and again.

Edit:

For clarity, I expect that the list doesn't contain any pokémon described as "unobtainable" in ORAS. See http://www.serebii.net/omegarubyalphasapphire/unobtainable.shtml for the complete list of Pokémon that are not allowed.

Best Answer

According to gaymer_dude on Reddit:

Since, according to this thread, Sharpedo is the best Pokemon to Surf on, I did some research. Sharpedo can learn Surf, Cut, Dive, and Waterfall. Skarmory, a good Pokemon in its own right, learns the other moves you need (Fly, Cut, and Rock Smash). So that's pretty neat!

So the smallest group of explorers is 2