public static List<Person> tallestTower(List<Person> lop) {
		// 1. sort the list of person based on height;
		List<Person>	l1  =  new ArrayList<>(lop);
		List<Person>    l2  =  new ArrayList<>(lop);
		Collections.sort(l1, new Comparator<Person>(){
			@Override
			public int compare(Person p1, Person p2){
				if ( p1.height > p2.height ) {
					return 1;
				} else if ( p1.height == p2.height ) {
					return 0;
				} else {
					return -1;
				}
			}
		});
		// 2. sort the list of persons based on their weight;
		Collections.sort(l2, new Comparator<Person>(){
			@Override
			public int compare(Person p1, Person p2){
				if ( p1.weight > p2.weight ) {
					return 1;
				} else if ( p1.weight == p2.weight ) {
					return 0;
				} else {
					return -1;
				}
			}
		});		
		System.out.println( l1 );
		System.out.println( l2 );
		// Longest Common Sequence
		List<Person>	ret  =  LCS(l1, l2);		
		return ret;
	}