/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		List<List<String>> data = new ArrayList<>();
        List<String> list1 = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        List<String> list3 = new ArrayList<>();
 
        list1.add("Siva");
        list1.add("20");
        list1.add("Hyd");
        list1.add("TA");
        list1.add("India");
 
        list2.add("Suresh");
        list2.add("22");
        list2.add("Banglore");
        list2.add("KA");
        list2.add("India");
 
        list3.add("Ramesh");
        list3.add("24");
        list3.add("Chennai");
        list3.add("TN");
        list3.add("India");
 
        data.add(list1);
        data.add(list2);
        data.add(list3);
 
        List<List<String>> listSorted1 = data.stream()
                .sorted((x, y) -> {
                    int res = x.get(0).compareTo(y.get(0));
                    if (res != 0) return res;
                    res = Integer.valueOf(x.get(1)).compareTo(Integer.valueOf(y.get(1)));
                    if (res != 0) return res;
                    return x.get(2).compareTo(y.get(2));
                })
                .collect(Collectors.toList());
 
        System.out.println("Sorting without mapping: \n" + listSorted1);
	}
}