first full solution