The code seems like find to me. Mind to share any bug in it?
print the original word that the user puts in instead not the uppercased version
You are intended to have a lower case first letter, since in the end it will be the 3rd character from last before "ay", so you need to call lower() before you assign first so that it grabs a lower case 'g' or call lower on first to convert it as well.
Your code would produce OodGay instead of Oodgay
The instructions clearly state that all the lines should be written inside the if statement. How does that work?