The badge from Cianwood.
You need the Thunder Badge.
To use the HM Fly, you have to have the Thunder Badge, won from Lt. Surge in Vermilion City.
The sixth badgeno actually it the third badge
get the 4th badge in celadon city
After you get the Cobble badge from the Veilstone gym.
The Thunder Badge
You can use the move as soon as you get it. You can fly to different towns with a certain badge.
to make fly work, you have to get the thunder badge from Lt.Surge (the gym leader in vermilion city) then get fly.
If you're in the Johto region, then you need to fly to either the Pokemon League or Victory Road to be able to view or fly to the Kanto region.
It is the 6th Gym Leader, but its the 2 girls with the moon and sun pokemon. you get fly from the 5th gym in foretree city wich is bird lady... hah
i think its 3,4, or 5 sorry its no help
After you have beat wake in pastoria city you have to fly to hearthome city and you can battle the 5th gym leader and get your 5th badge.