??????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????? ????????????????????????????????????????????????? ??????????????? ???????????????????? ????? solution ??????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????