Well the last gym leader is a dragon type leader so you need an ice type pokemon and/or dragon type pokemon. Idk what his name is but a guy gives you a level 15 Datrini and it is a dragon type pokemon. For an ice type pokemon, go back to the cave (idk the name of the cave but it is a ice cave) and get an ice type pokemon like swinub and raise him and beat Blair!
get stronger then you are before
you beat the last gym leader in johnto
you have to beat the last gym leader
He's called Green and he's the gym Leader of the last Gym. Beat all the other gyms then beat him.
beat gym leader
Go to the third
Simply beat the gym leader in every gym.
you go west of ecturek and face the gym leader of olivine
You have to beat Clair the dragon gym leader
to azalea town
Beat the gym leader.
After you beat Blue, the 16th gym leader