static String  sort(int[][] sort){
		StringBuffer sb = new StringBuffer();
		
		int colNums = sort[0].length;
		int rowNums = sort.length;
		
		int maxLength = colNums + rowNums -1;
		
		for(int i=0;i<maxLength; i++){
			
			// left-down to right-top
			int col = i>(rowNums-1) ? (i-rowNums+1) :0;
			int row = i>(rowNums-1) ? (rowNums-1) :i;
			for(int index =0;index < (i+1) ;index++){
				int r = row - index;
				int c = col + index;
				if(r < 0 || c >(colNums-1)){
					break;
				}else{
					sb.append(sort[r][c]).append(",");
				}
			}
		}
		return sb.toString();
	}
	static String  sortN(int[][] sort){
		StringBuffer sb = new StringBuffer();
		
		int colNums = sort[0].length;
		int rowNums = sort.length;
		
		int maxLength = colNums + rowNums -1;
		
		for(int i=0;i<maxLength; i++){
			if(i%2 == 1){
				// left-down to right-top
				int col = i>(rowNums-1) ? (i-rowNums+1) :0;
				int row = i>(rowNums-1) ? (rowNums-1) :i;
				for(int index =0;index < (i+1) ;index++){
					int r = row - index;
					int c = col + index;
					if(r < 0 || c >(colNums-1)){
						break;
					}else{
						sb.append(sort[r][c]).append(",");
					}
				}
			}else{
				// right-top to left-down
				int row = i>(colNums-1) ? (i-colNums+1) :0;
				int col = i>(colNums-1) ? (colNums-1) :i;
				for(int index = 0;index < (i+1) ; index++){
					int r = row + index;
					int c = col - index;
					if(c < 0 || r >(rowNums -1)){
						break;
					}else{
						sb.append(sort[r][c]).append(",");
					}
				}
			}
		}
		return sb.toString();
	}