#include <iostream>
#include <string.h>
using namespace std;
bool ispalindrome(char* s, int l, int r)
{
int n = r-l+1;
for(int i=0; i<n/2; i++)
{
if(s[l+i] != s[r-i])
return false;
}
for(int i=l; i<=r; i++)
cout << s[i];
cout << endl;
return true;
}
void palindromesubstrings(char* s)
{
int n = strlen(s);
for(int i=0; i<n; i++)
{
for(int j=i+1; j<n; j++)
{
if(s[i] == s[j])
{
//cout << "[" << i << "," << j << "]=" << s[i] << endl;
ispalindrome(s,i,j);
}
}
}
}
int main() {
// your code goes here
char s1[100], s2[100];
cin >> s1;
cin >> s2;
//cout << "palindrome " << s1 << " " << (ispalindrome(s1,0,strlen(s1)-1)? "true" : "false");
cout << "palindrome substrings of " << s2 << ":\n";
palindromesubstrings(s2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzcGFsaW5kcm9tZShjaGFyKiBzLCBpbnQgbCwgaW50IHIpCnsKCWludCBuID0gci1sKzE7Cglmb3IoaW50IGk9MDsgaTxuLzI7IGkrKykKCXsKCQlpZihzW2wraV0gIT0gc1tyLWldKQoJCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCWZvcihpbnQgaT1sOyBpPD1yOyBpKyspCgkJY291dCA8PCBzW2ldOwoJY291dCA8PCBlbmRsOwoJcmV0dXJuIHRydWU7Cn0Kdm9pZCBwYWxpbmRyb21lc3Vic3RyaW5ncyhjaGFyKiBzKQp7CglpbnQgbiA9IHN0cmxlbihzKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKykKCXsKCQlmb3IoaW50IGo9aSsxOyBqPG47IGorKykKCQl7CgkJCWlmKHNbaV0gPT0gc1tqXSkKCQkJewoJCQkJLy9jb3V0IDw8ICJbIiA8PCBpIDw8ICIsIiA8PCBqIDw8ICJdPSIgPDwgc1tpXSA8PCBlbmRsOwoJCQkJaXNwYWxpbmRyb21lKHMsaSxqKTsKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgljaGFyIHMxWzEwMF0sIHMyWzEwMF07CgljaW4gPj4gczE7CgljaW4gPj4gczI7CgkvL2NvdXQgPDwgInBhbGluZHJvbWUgIiA8PCBzMSA8PCAiICIgPDwgKGlzcGFsaW5kcm9tZShzMSwwLHN0cmxlbihzMSktMSk/ICJ0cnVlIiA6ICJmYWxzZSIpOwoJY291dCA8PCAicGFsaW5kcm9tZSBzdWJzdHJpbmdzIG9mICIgPDwgczIgPDwgIjpcbiI7CglwYWxpbmRyb21lc3Vic3RyaW5ncyhzMik7CglyZXR1cm4gMDsKfQ==