1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
#include <cmath>
#include <unordered_set>
#include <unordered_map>
#include <cassert>
#include <numeric>
#include <deque>

int main()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);

	/*
	long long iloczyn = 1;
	for (int i = 20; i >= 11; ++i)
	{
		iloczyn *= i;
		iloczyn /= 21 - i;
	}
	std::cerr << iloczyn << "\n";
	std::cerr << log2(3000000) << "\n";
	return 0;*/

	int t;
	std::cin >> t;

	for (int test = 0; test < t; ++test)
	{
		int dlugoscSlowa;
		int dlugoscPalindromu;
		std::cin >> dlugoscSlowa >> dlugoscPalindromu;

		if (dlugoscSlowa < 10)
		{
			bool czyPalindromZnaleziony = false;
			for (long long slowo = 0; slowo < (1ll << dlugoscSlowa); ++slowo)
			{
				int maxPalindrom = 0;
				for (int start = 0; start <= dlugoscSlowa; ++start)
				{
					for (int end = start + 1; end <= dlugoscSlowa; ++end)
					{
						bool czyPalindrom = true;
						for (int i = 0; i < end - start; ++i)
						{
							bool czyPoczatek = (slowo & (1ll << (start + i))) > 0;
							bool czyKOniec = (slowo & (1ll << (end - i - 1))) > 0;
							if (czyPoczatek != czyKOniec)
							{
								czyPalindrom = false;
								break;
							}
						}
						if (czyPalindrom)
							maxPalindrom = std::max(maxPalindrom, end - start);
					}
				}
				if (maxPalindrom == dlugoscPalindromu)
				{
					for (int i = 0; i < dlugoscSlowa; ++i)
					{
						if ((slowo & (1 << i)) > 0)
							std::cout << "P";
						else
							std::cout << "A";
					}
					std::cout << "\n";
					czyPalindromZnaleziony = true;
					break;
				}
			}
			if (!czyPalindromZnaleziony)
			{
				std::cout << "NIE\n";
			}
			continue;
		}
		if (dlugoscPalindromu <= 3)
		{
			std::cout << "NIE\n";
			continue;
		}
		std::string ciag = "PAPPAA";
		for (int i = 0; i < dlugoscPalindromu; ++i)
		{
			std::cout << "A";
		}
		for (int i = 0; i < dlugoscSlowa - dlugoscPalindromu; ++i)
		{
			std::cout << ciag[i % 6];
		}
		std::cout << "\n";
	}
	return 0;
}