#include <iostream>
#include <utility>
template <std::size_t... Is>
auto print_sword(int n, std::index_sequence<Is...>) {
static constexpr char sp[] = " ";
static constexpr char ds[] = "----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
using expander = int[];
(void)expander{0, (
(static_cast<int>(Is) + 1 <= 3 * n - 1) ? (
[&]() {
int i = static_cast<int>(Is) + 1;
int left_spaces = (i <= n) ? (n - i + 1) / 2 :
(i < 2 * n) ? (i - n + 1) / 2 :
(3 * n - i) / 2;
if (i == n) {
if (n == 1) {
std::cout.write("*\n", 2);
} else {
std::cout.put('*');
std::cout.write(ds, 2 * n - 3);
std::cout.write("*\n", 2);
}
} else if (i > 1 && i < 2 * n - 1) {
int P = (n + 1) / 2;
int inner = P - left_spaces - 1;
std::cout.write(sp, left_spaces);
std::cout.put('*');
std::cout.write(sp, inner);
std::cout.put('|');
std::cout.write(sp, inner);
std::cout.write("*\n", 2);
} else {
std::cout.write(sp, left_spaces);
std::cout.write("*\n", 2);
}
}(), 0
) : 0
)...};
}
auto main() -> int {
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
if (std::cin >> n) {
print_sword(n, std::make_index_sequence<300>{});
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KCnRlbXBsYXRlIDxzdGQ6OnNpemVfdC4uLiBJcz4KYXV0byBwcmludF9zd29yZChpbnQgbiwgc3RkOjppbmRleF9zZXF1ZW5jZTxJcy4uLj4pIHsKICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBzcFtdID0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7CiAgICBzdGF0aWMgY29uc3RleHByIGNoYXIgZHNbXSA9ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIjsKICAgIAogICAgdXNpbmcgZXhwYW5kZXIgPSBpbnRbXTsKICAgICh2b2lkKWV4cGFuZGVyezAsICgKICAgICAgICAoc3RhdGljX2Nhc3Q8aW50PihJcykgKyAxIDw9IDMgKiBuIC0gMSkgPyAoCiAgICAgICAgICAgIFsmXSgpIHsKICAgICAgICAgICAgICAgIGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihJcykgKyAxOwogICAgICAgICAgICAgICAgaW50IGxlZnRfc3BhY2VzID0gKGkgPD0gbikgPyAobiAtIGkgKyAxKSAvIDIgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPCAyICogbikgPyAoaSAtIG4gKyAxKSAvIDIgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDMgKiBuIC0gaSkgLyAyOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoaSA9PSBuKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQud3JpdGUoIipcbiIsIDIpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dC5wdXQoJyonKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0LndyaXRlKGRzLCAyICogbiAtIDMpOwogICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQud3JpdGUoIipcbiIsIDIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA+IDEgJiYgaSA8IDIgKiBuIC0gMSkgewogICAgICAgICAgICAgICAgICAgIGludCBQID0gKG4gKyAxKSAvIDI7CiAgICAgICAgICAgICAgICAgICAgaW50IGlubmVyID0gUCAtIGxlZnRfc3BhY2VzIC0gMTsKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQud3JpdGUoc3AsIGxlZnRfc3BhY2VzKTsKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQucHV0KCcqJyk7CiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0LndyaXRlKHNwLCBpbm5lcik7CiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0LnB1dCgnfCcpOwogICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dC53cml0ZShzcCwgaW5uZXIpOwogICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dC53cml0ZSgiKlxuIiwgMik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dC53cml0ZShzcCwgbGVmdF9zcGFjZXMpOwogICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dC53cml0ZSgiKlxuIiwgMik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0oKSwgMAogICAgICAgICkgOiAwCiAgICApLi4ufTsKfQoKYXV0byBtYWluKCkgLT4gaW50IHsKICAgIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBzdGQ6OmNpbi50aWUobnVsbHB0cik7CiAgICAKICAgIGludCBuOwogICAgaWYgKHN0ZDo6Y2luID4+IG4pIHsKICAgICAgICBwcmludF9zd29yZChuLCBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8MzAwPnt9KTsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=