import java.util.*;
public class kuaiPai {
/*快速排序
* 思路:取一个关键字,通过一趟排序将数组分为大于关键字和小于该关键字两部分
* 重复上述步骤,直到完成排序
*
* */
public static void kuaiPai(int[] arr, int left, int right){
//这里的left→right是指调整的数组范围
//如数组arr={4,8,1,5,6,9,10},则第一趟排序时
//调整数组(下标)范围为arr[0]-arr[6],则left=0,right=6
int i=left;
int j=right;
int key=arr[left];
if(left>right){return;} //循环出口
while(i!=j){
while(i<j && arr[j]>=key){j--;}
//从数组尾j开始找比key小的值,当数值比key大时,继续向左寻找(j--)
while(i<j && arr[i]<=key){i++;}
//从数组尾j开始找比key大的值,当数值比key大时,继续向右寻找(i++)
if(i<j){
//交换分别找到的第一个比key大、小的值
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
if(i==j){
//当两个“指针”碰头时
//将最后找到的一个未比较的值(当前i、j指向值)与key位置互换
arr[left]=arr[i];//arr[left]是基准值的位置
arr[i]=key;
}
//经过“第一轮”排序,原数组分别为比key大、小的两组
//接下来对这两组继续做快排操作
if(left<i-1){kuaiPai(arr,left,i-1);}
if(right>i+1){kuaiPai(arr,i+1,right);}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//java读入数组数据
Scanner input=new Scanner(System.in);
String str=input.nextLine().toString();
//用nextLine()读一整行,并以字符串的形式读入
String arr[]=str.split(",");
//用split()方法将字符串以,隔开
int a[]=new int[arr.length]; //数组内存初始化
for(int i=0;i<a.length;i++){
a[i]=Integer.parseInt(arr[i]);//为数组赋值
//Integer.parseInt()方法将一个字符串转换成int型
}
//打印数组的方法
System.out.println(Arrays.toString(a));
int len=a.length;
System.out.println(len);
kuaiPai(a,0,len-1);
System.out.println(Arrays.toString(a));
}
}