package main import ( "bufio" "fmt" "os" "strconv" "strings" ) type Scanner struct { reader *bufio.Reader buffer []string pointer int } func NewScanner() *Scanner { return &Scanner{ reader: bufio.NewReaderSize(os.Stdin, 4096), pointer: 0, } } func (self *Scanner) NextLine() string { var buffer []byte for { line, isPrefix, _ := self.reader.ReadLine() buffer = append(buffer, line...) if !isPrefix { break } } return string(buffer) } func (self *Scanner) Next() string { if self.pointer >= len(self.buffer) { line := self.NextLine() self.buffer = strings.Fields(line) self.pointer = 0 } self.pointer++ return self.buffer[self.pointer-1] } func (self *Scanner) NextInt() int { s := self.Next() i, _ := strconv.ParseInt(s, 10, 32) return int(i) } func (self *Scanner) NextLong() int64 { s := self.Next() l, _ := strconv.ParseInt(s, 10, 64) return int64(l) } func (self *Scanner) NextFloat() float32 { s := self.Next() f, _ := strconv.ParseFloat(s, 32) return float32(f) } func (self *Scanner) NextDouble() float64 { s := self.Next() d, _ := strconv.ParseFloat(s, 64) return float64(d) } func main() { cin := NewScanner() N := cin.NextInt() for i := 0; i < N; i++ { for j := N - i - 1; j >= 0; j-- { fmt.Print(N) } fmt.Println() } }