Dollar reaches Rs158.18 as rupee sheds 31 paisas