#include <iostream>
#include <iomanip>
#include <string>
#include <vector>


void print_table(unsigned limit)
{
    std::cout << '\n' << std::right << std::setw(5) << '|';
    for (unsigned i = 1; i <= limit; ++i)
        std::cout << std::setw(4) << i;
    std::cout << '\n' << std::string(5 + 4 * limit, '-') << '\n';

    for (unsigned i = 1; i <= limit; ++i)
    {
        std::cout << std::setw(4) << i << '|';
        for (unsigned j = 1; j <= limit; ++j)
            std::cout << std::setw(4) << i*j;
        std::cout << '\n';
    }
}

int main()
{
    std::cout << "Limit?\n> ";

    unsigned limit;
    std::cin >> limit;

    print_table(limit);
}

