        :type board: List[List[str]]
        :type words: List[str]
        :rtype: List[str]
        """
        # build trie
        self.trie = {}
        for word in words:
            node = self.trie
            for c in word:
                if c not in node:
                    node[c] = {}