India launches rocket carrying 31 satellites