Если рассматривать подачу, становится заметно, что она не повторяется в одном виде, а перестраивается от строки к строке. В рамках этой строки представлен практический комментарий. Под конец сформулированы итоги, чтобы было проще сохранить понятность. Если нужно можно адаптировать эту подачу под свою задачу.
https://git.dev.glazastik.shop/tiasalcedo8610/tawanna2020/wiki/%D0%BA%D1%80%D0%B0%D0%BA%D0%B5%D0%BD%3A-%D0%B7%D0%BE%D0%BD%D0%B0-%D0%BA%D0%BE%D0%BC%D1%84%D0%BE%D1%80%D1%82%D0%B0-%E2%80%94-%D0%B3%D0%B4%D0%B5-%D1%82%D1%8B