???
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String filename=reader.readLine();
reader.close();
StringBuilder sb=new StringBuilder();
BufferedReader br = new BufferedReader(new FileReader(filename));
sb.append(br.readLine());
while (br.ready()) {
String s = br.readLine();
if(s == null || s.equals("")) continue;
if(sb.length() != 0) sb.append(" ");
sb.append(s);
}
String string=sb.toString();
String[] words = string.split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString());
}
public static StringBuilder getLine(String[]word) {
String[]words=word;
if(words.length==0) return new StringBuilder();
int n=0;
int fb=1;
int lb=1;
String fs=null;
String ls=null;
ArrayList<String>a=new ArrayList<>();
for(int g=0;g< words.length;g++){
a.add(words[g]);
}
for(int i=0;n< a.size();i++){
String cc=a.get(0);
for(int k=1;k<a.size();k++){
if((cc.substring(0,1).toLowerCase()).equals(a.get(k).substring(a.get(k).length()-1))){
fb++;
}
if((cc.substring(cc.length()-1)).equals((a.get(k).substring(0,1)).toLowerCase())){
lb++;
}
}
if(fb%2==0&&lb%2!=0){
fs=cc;
}
if(fb==1){
fs=cc;
break;}
fb=1;
lb=1;
a.remove(0);
a.add(cc);
n++;
}
n=0;
for(int i=0;n< a.size();i++){
String cc=a.get(0);
for(int k=1;k<a.size();k++){
if((cc.substring(0,1).toLowerCase()).equals(a.get(k).substring(a.get(k).length()-1))){
fb++;
}
if((cc.substring(cc.length()-1)).equals((a.get(k).substring(0,1)).toLowerCase())){
lb++;
}
}
if(fb%2==0&&lb%2!=0){
ls=cc;
}
if(lb==1){
ls=cc;
break;}
fb=1;
lb=1;
a.remove(0);
a.add(cc);
n++;
}
if(fs!=null){
for(String str1:a){
if(str1.equals(fs))
{a.remove(str1);break;}
}
a.add(0,fs);
}
if(ls!=null){
for(String str2:a){
if(str2.equals(ls))
{a.remove(str2);break;}
}
a.add(ls);
}
StringBuilder rezult=new StringBuilder();
for(int i=0;i<a.size()-1;i++){
String last=a.get(i).substring(a.get(i).length()-1);
for(int k=i+1;k<a.size();k++){
if(((a.get(k).substring(0,1)).toLowerCase()).equals(last)){
String b=a.get(i+1);
a.set(i+1,a.get(k));
a.set(k,b);
n=0;
break;
}
}
}
for (String s : a) {
rezult.append(s);
rezult.append(" ");
}
rezult.deleteCharAt(rezult.length()-1);
return rezult;
}
}