#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# author: bt3gl


class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children


def level_orders(root):

    if root is None:
        return []

    result = []
    queue = collections.deque([root])

    while queue:
        level = []
        for _ in range(len(queue)):
                node = queue.popleft()
                level.append(node.val)
                queue.extend(node.children)
            result.append(level)
        
  return result