Where Do I Get Surf on "Pokemon FireRed"?

HM03 is a hidden machine that is used to teach a Pokémon the "Surf" move. HM03 is located in the furthest reaches of the Safari Zone in Fuschia City.

To reach HM03, the player must navigate through the maze of the Safari Zone to reach the Secret House at the end in less than 500 steps. If after 500 steps the player has not reached the Secret House, there is an announcement declaring that time is up, and the player is returned to the entrance. In the Secret House, a man gives the player HM03 as a prize for finding him. To use Surf outside of battle, the player must have acquired the Soul Badge from Koga, Fuschia City's Gym Leader.