#include
#include
#include
#include
using namespace std;
int main()
{
int n;
char c;
cin >> n >> c;
vector v;
int i = 0;
while (true) //计算能够形成的沙漏的最大行数
{
int sum = 2 * pow(i, 2) - 1;
if (sum <= n)
v.push_back(sum);
else
break;
i++;
}
i--;
int sum = 2 * pow(i, 2) - 1;
int last = n - sum; //剩余的符号数
for (int j = v.size() - 1; j >= 0; j--) //倒序输出
{
int k = (v[j] - 1) / 2; //计算每行空格数
for (int l = 0; l < k; l++)
cout << ' ';
for (int l = 0; l < v[j]; l++)
cout << c;
cout << endl;
}
for (int j = 1; j < v.size(); j++) //正序输出
{
int k = (v[j] - 1) / 2; //计算每行空格数
for (int l = 0; l < k; l++)
cout << ' ';
for (int l = 0; l < v[j]; l++)
cout << c;
cout << endl;
}
cout << last << endl;
return 0;
}