Enhancing Automated Program Repair through Fine-tuning and Prompt Engineering