i would suggest your starter be at least lvl 10
One is from the elder sage when you beat him at sprout tower or you could buy it from Goldenrod department store for 2000PD, if not, go to Celadon and buy it there(Celadon is in the Kanto region).
you get it from the sprout tower elder after you beat him
Beat the grunts, get the key from the Radio Tower Chairman at the hideout, beat Archer and Ariana
level 100 i am shaqib and i beat heartgold, dimond, platinum, black, white, all of them actually .
You have to beat team galactic and then talk to the man that is out side of the radio tower.
beat the team rocket in the radio tower in golden rod
Beat team rocket in Goldern City at the radio tower
i beat it with lvl 37 and 38
he respawns in the burned tower after you beat the elite four again
You beat the power plant then go to lavender town radio tower
The elder gives you the TM Flash after you defeat him.
HM Flash is now TM 70, and you can get it either at the Sprout Tower, or bought at the Goldenrod Department Store.This is not optional for the first way. Go through sprout tower and when your at the top beat the elder, then he will give you TM flash. (YES IT IS A TM!)