Indian shares top one-month highs and are set for best week in two months