Instructions
Fly
Go to Route 16 and walk through the guard house.
Play the Poke Flute next to the Snorlax that blocks the path to wake it up. Fight it and either defeat or capture it.
Approach the bush along this path that looks different to the others and use the "Cut" move to cut it down.
Go through the gap you have made and walk left, through the top section of the guard house and out to the other side.
Enter the house here and talk to the Pokemon Trainer inside. She will give you the Fly HM move.
Surf
Enter the Safari Zone in Fuchsia City. Walk north and then east from the entrance to the exit of the first area.
Go east to a grassy area, and then go north up the stairs. Walk west, go down the steps, and then head north again and up another set of stairs. Go east, down some more stairs, and then walk north until you can turn left. Go west at the junction to exit the area.
Walk west into the tall grass and then walk north to the steps at the top of the grassy area. Go up these steps and follow the path until you go down a flight of stairs. Head west to a pond and then go north and then east to another patch of long grass. Go north from the grass until you can't go any further and then walk west to another patch of grass. Walk south from here and go through the exit.
Go west and enter the small hut. Talk to the man inside to receive the Surf HM move.