Враховуючи неплоский список цілих чисел, виведіть список списків, що містять цілі числа на кожному рівні вкладення, починаючи з рівня найменшого введення, зі значеннями в їх первісному порядку в списку введення, коли читається зліва направо. Якщо два або більше списків знаходяться на одному рівні вкладеності у вхідному списку, їх слід об'єднати в єдиний список у вихідному. Вихідні дані не повинні містити порожніх списків - рівні вкладення, які містять лише списки, слід повністю пропускати.
Можна припустити, що цілі числа знаходяться у діапазоні (включно) [-100, 100]. Для списків немає максимальної довжини або глибини вкладання. Порожніх списків на вході не буде - кожен рівень введення міститиме щонайменше одне ціле число чи список.
Введення та вихід повинні бути в рідному списку / масиві / перелічуваному / ітерабельному / тощо. форматі або в будь-якому розумному, однозначному форматі, якщо у вашій мові відсутній тип послідовності.
Приклади
[1, 2, [3, [4, 5], 6, [7, [8], 9]]] => [[1, 2], [3, 6], [4, 5, 7, 9], [8]]
[3, 1, [12, [14, [18], 2], 1], [[4]], 5] => [[3, 1, 5], [12, 1], [14, 2, 4], [18]]
[2, 1, [[5]], 6] => [[2, 1, 6], [5]]
[[54, [43, 76, [[[-19]]]], 20], 12] => [[12], [54, 20], [43, 76], [-19]]
[[[50]], [[50]]] => [[50, 50]]
Cases[#,_?AtomQ,{i}]~Table~{i,Depth@#}~DeleteCases~{}&