function exp solution