A hyper-heuristics approach to solve a real-world and a benchmark examination timetabling problem