import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.TreeMap;

class Main {
	
	public static void main (String [] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String s;
		
		while (!(s=br.readLine()).equals("0")) {
			int N=Integer.parseInt(s);
			long cost=0; //wtf.
			TreeMap<Integer,Integer> map=new TreeMap<>();
			for (int i=0;i<N;i++) {
				StringTokenizer st=new StringTokenizer(br.readLine());
				int k=Integer.parseInt(st.nextToken());
				for (int i2=0;i2<k;i2++) {
					int num=Integer.parseInt(st.nextToken());
					map.put(num,map.getOrDefault(num,0)+1);
				}
				
				int highest=map.lastKey();
				if (map.get(highest)==1) map.remove(highest);
				else map.put(highest,map.get(highest)-1);
				
				int lowest=map.firstKey();
				if (map.get(lowest)==1) map.remove(lowest);
				else map.put(lowest,map.get(lowest)-1);
				
				cost+=(highest-lowest);
			}
			System.out.println(cost);
		}
	}
}