O(3^n)