Selecting Representative Examples for Program Synthesis