struct Pair{int first;int second;};

l(a,n,p)int*a;{return n?n<0?a[-n]<p?(((a[-n]^=*a),*a^=a[-n]),a[-n]^=*a),l(a+1,~n,p)+1:l(a,n+1,p):*a<p?l(a+1,n-1,p)+1:l(a,1-n,p):-1;}
struct Pair f(a,n,p)int*a;{struct Pair r={l(a,n,p),l(a,n,p+1)};return r;}

#include <stdio.h>
main() {
  int n, p, i;
  scanf("%d%d", &n, &p);
  int a[n];
  for(i=0; i<n; i++) scanf("%d", &a[i]);
  struct Pair r = f(a, n, p);
  for(i=0; i<n; i++) printf("%d ", a[i]);
  printf("\n%d,%d\n", r.first, r.second);
}
