```go
package main
import (
"bufio"
"fmt"
"os"
)
func smallestGoodNumber(n int) int {
digits := []int{}
temp := n
for temp > 0 {
digits = append(digits, temp%3)
temp /= 3
}
for {
leftmostTwo := -1
for i := len(digits) - 1; i >= 0; i-- {
if digits[i] == 2 {
leftmostTwo = i
break
}
}
if leftmostTwo == -1 {
break
}
pos := leftmostTwo + 1
for pos < len(digits) && digits[pos] != 0 {
pos++
}
if pos == len(digits) {
digits = append(digits, 0)
}
digits[pos] = 1
for i := 0; i < pos; i++ {
digits[i] = 0
}
}
result := 0
power := 1
for i := 0; i < len(digits); i++ {
result += digits[i] * power
power *= 3
}
return result
}
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var q int
fmt.Fscan(reader, &q)
for i := 0; i < q; i++ {
var n int
fmt.Fscan(reader, &n)
fmt.Fprintln(writer, smallestGoodNumber(n))
}
}
```