package main
import (
"fmt"
"strings"
"strconv"
"encoding/csv"
)
func f888(input string) {
tmp := strings.NewReplacer("[","","]",""," ","").Replace(input)
r := csv.NewReader(strings.NewReader(tmp))
var result [][]byte
for {
values, err := r.Read();
if err != nil {
break
}
col, _ := strconv.Atoi(values[1])
line, _ := strconv.Atoi(values[2])
if len(result) <= line {
tmp := make([][]byte, line+1)
copy(tmp, result)
result = tmp
}
if len(result[line]) <= col {
tmp := make([]byte, col+1)
copy(tmp, result[line])
for i := len(result[line]); i < len(tmp); i++ {
tmp[i] = ' '
}
result[line] = tmp
}
result[line][col]=values[0][0]
}
for _, l := range result {
fmt.Printf("%s\n", string(l))
}
}
func main(){
f888("[a, 0, 0]\n[b, 2, 0]\n[c, 4, 0]\n[d, 0, 2]")
}
cGFja2FnZSBtYWluCmltcG9ydCAoCgkiZm10IgoJInN0cmluZ3MiCgkic3RyY29udiIKCSJlbmNvZGluZy9jc3YiCikKCmZ1bmMgZjg4OChpbnB1dCBzdHJpbmcpIHsKCXRtcCA6PSBzdHJpbmdzLk5ld1JlcGxhY2VyKCJbIiwiIiwiXSIsIiIsIiAiLCIiKS5SZXBsYWNlKGlucHV0KQoJciA6PSBjc3YuTmV3UmVhZGVyKHN0cmluZ3MuTmV3UmVhZGVyKHRtcCkpCgkKCXZhciByZXN1bHQgW11bXWJ5dGUKCWZvciB7CgkJdmFsdWVzLCBlcnIgOj0gci5SZWFkKCk7CgkJaWYgZXJyICE9IG5pbCB7CgkJCWJyZWFrCgkJfQoJCWNvbCwgXyA6PSBzdHJjb252LkF0b2kodmFsdWVzWzFdKQoJCWxpbmUsIF8gOj0gc3RyY29udi5BdG9pKHZhbHVlc1syXSkKCQlpZiBsZW4ocmVzdWx0KSA8PSBsaW5lIHsKCQkJdG1wIDo9IG1ha2UoW11bXWJ5dGUsIGxpbmUrMSkKCQkJY29weSh0bXAsIHJlc3VsdCkKCQkJcmVzdWx0ID0gdG1wCgkJfQoJCWlmIGxlbihyZXN1bHRbbGluZV0pIDw9IGNvbCB7CgkJCXRtcCA6PSBtYWtlKFtdYnl0ZSwgY29sKzEpCgkJCWNvcHkodG1wLCByZXN1bHRbbGluZV0pCgkJCWZvciBpIDo9IGxlbihyZXN1bHRbbGluZV0pOyBpIDwgbGVuKHRtcCk7IGkrKyB7CgkJCQl0bXBbaV0gPSAnICcKCQkJfQoJCQlyZXN1bHRbbGluZV0gPSB0bXAKCQl9CgkJcmVzdWx0W2xpbmVdW2NvbF09dmFsdWVzWzBdWzBdCgl9Cglmb3IgXywgbCA6PSByYW5nZSByZXN1bHQgewoJCWZtdC5QcmludGYoIiVzXG4iLCBzdHJpbmcobCkpCgl9Cn0KCmZ1bmMgbWFpbigpewoJZjg4OCgiW2EsIDAsIDBdXG5bYiwgMiwgMF1cbltjLCA0LCAwXVxuW2QsIDAsIDJdIikKfQo=