public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String grandfathername = reader.readLine(); Cat catGrandfather = new Cat(grandfathername); String grandmothername = reader.readLine(); Cat catGrandmother = new Cat(grandmothername); String fatherName = reader.readLine(); Cat catFather = new Cat(fatherName,null,catGrandfather); String motherName = reader.readLine(); Cat catMother = new Cat(motherName,catGrandmother,null); String sonName = reader.readLine(); Cat catSon = new Cat(sonName,catMother,catFather); String daughterName = reader.readLine(); Cat catDaughter = new Cat(daughterName, catMother,catFather); System.out.println(catGrandfather); System.out.println(catGrandmother); System.out.println(catFather); System.out.println(catMother); System.out.println(catSon); System.out.println(catDaughter); } public static class Cat { private String name; private Cat mother; private Cat father; Cat(String name) { this.name = name; } Cat(String name,Cat mother, Cat father) { this.name = name; this.father = father; this.mother = mother; } @Override public String toString() { if (mother == null && father == null) return "The cat's name is " + name + ", no mother, no father"; else if(mother == null) return "The cat's name is " + name + ", no mother, " + father.name + " is the father"; else if(father == null) return "The cat's name is " + name +", "+ mother.name + " is the mother "+", no father" ; else return "The cat's name is " + name +", "+ mother.name + " is the mother, "+father.name + " is the father"; } } }