$_ = $$ / $$ # 1
@_ = $_ + $_ # 2
$- = $_ - @_ # -1
$-_ = $_ - $_ # 0
# factorial
$__ = -> _ {
_ < @_ ? $_ : _ * $__[_ - $_]
}
# Array#size
$___ = -> _ {
$. = $-_
(@__ = -> {
$. += $_
(_ = _[$_..$-]) == [] ? $. : @__[]
})[]
}
# map
$____ = -> _, __ {
@___ = $___[_]
$. = $-_
(@____ = -> {
_[$.] = __[_[$.]]
($. += $_) == @___ ? _ : @____[]
})[]
}
# triangle
$_____ = -> _ {
$____[[*$-_.._], -> __ { $__[_] / ($__[__] * $__[_ - __]) }]
}
# Array#each
___ = -> _, __ {
____ = $___[_]
_____ = $-_
(______ = -> {
__[_[_____]]
(_____ += $_) == ____ ? _ : ______[]
})[]
}
# Array#with_index
@_____ = -> _ {
___ = $___[_]
$. = $-_
__ = []
(____ = -> {
__ << [_[$.], $.]
($. += $_) == ___ ? __ : ____[]
})[]
}
n = gets.to_i
$_ = 1
___[@_____[$_____[n - $_]], -> _ {
$> << $____[$_____[_[$_]], -> __ { _[$-_] * __ }] * ' ' <<
('' << @_ * @_ * @_ + @_)}]
JF8gID0gJCQgLyAkJCAjICAxCkBfICA9ICRfICsgJF8gIyAgMgokLSAgPSAkXyAtIEBfICMgLTEKJC1fID0gJF8gLSAkXyAjICAwIAoKIyBmYWN0b3JpYWwKJF9fID0gLT4gXyB7CiAgXyA8IEBfID8gJF8gOiBfICogJF9fW18gLSAkX10KfQoKIyBBcnJheSNzaXplCiRfX18gPSAtPiBfIHsKICAkLiA9ICQtXwogIChAX18gPSAtPiB7CiAgICAkLiArPSAkXwogICAgKF8gPSBfWyRfLi4kLV0pID09IFtdID8gJC4gOiBAX19bXQogIH0pW10KfQoKIyBtYXAKJF9fX18gPSAtPiBfLCBfXyB7CiAgQF9fXyA9ICRfX19bX10KICAkLiA9ICQtXwogIChAX19fXyA9IC0+IHsKICAgIF9bJC5dID0gX19bX1skLl1dCiAgICAoJC4gKz0gJF8pID09IEBfX18gPyBfIDogQF9fX19bXQogIH0pW10KfQoKIyB0cmlhbmdsZQokX19fX18gPSAtPiBfIHsKICAkX19fX1tbKiQtXy4uX10sIC0+IF9fIHsgJF9fW19dIC8gKCRfX1tfX10gKiAkX19bXyAtIF9fXSkgfV0KfQoKIyBBcnJheSNlYWNoCl9fXyA9IC0+IF8sIF9fIHsKICBfX19fID0gJF9fX1tfXQogIF9fX19fID0gJC1fCiAgKF9fX19fXyA9IC0+IHsKICAgIF9fW19bX19fX19dXQogICAgKF9fX19fICs9ICRfKSA9PSBfX19fID8gXyA6IF9fX19fX1tdCiAgfSlbXQp9CgojIEFycmF5I3dpdGhfaW5kZXgKQF9fX19fID0gLT4gXyB7CiAgX19fID0gJF9fX1tfXQogICQuID0gJC1fCiAgX18gPSBbXQogIChfX19fID0gLT4gewogICAgX18gPDwgW19bJC5dLCAkLl0KICAgICgkLiArPSAkXykgPT0gX19fID8gX18gOiBfX19fW10KICB9KVtdCn0KCm4gPSBnZXRzLnRvX2kKJF8gPSAxCgpfX19bQF9fX19fWyRfX19fX1tuIC0gJF9dXSwgLT4gXyB7CiAgJD4gPDwgJF9fX19bJF9fX19fW19bJF9dXSwgLT4gX18geyBfWyQtX10gKiBfXyB9XSAqICcgJyA8PAogICgnJyA8PCBAXyAqIEBfICogQF8gKyBAXyl9XSA=