#include<iostream>
#include<algorithm>
using namespace std;
typedef long long int ll;
ll get_pos(ll a[],ll k,ll val,ll s,ll i)
{
ll low=i,high=s-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]+val==k)
{
return mid-1;
}
else if(a[mid]+val>k)
{
if(a[mid-1]+val<k&&mid-1>=i)
{
return mid-1;
}
else
{
if(mid-1<i)
{
return i-1;
}
high=mid-1;
}
}
else if(a[mid]+val<k)
{
if(a[mid+1]+val>=k)
{
return mid;
}
else
{
low=mid+1;
}
}
}
return low;
}
int main()
{
ll n,k,p,pos,s=0;
cin>>n>>k;
ll a[n];
for(ll i=0;i<n;i++)
{
cin>>p;
if(p<k)
{
a[s]=p;
s++;
}
}
sort(a,a+s);
for(int i=0;i<s;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
ll ans=0;
for(int i=0;i<s-1;i++)
{
ll z;
ll pos=get_pos(a,k,a[i],s,i+1);
cout<<pos<<" ";
if(pos>i)
{
ans=ans+(pos-i);
}
}
cout<<endl;
cout<<ans<<endl;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwoKbGwgZ2V0X3BvcyhsbCBhW10sbGwgayxsbCB2YWwsbGwgcyxsbCBpKQp7CiAgbGwgbG93PWksaGlnaD1zLTEsbWlkOwogIHdoaWxlKGxvdzw9aGlnaCkKICB7CiAgICBtaWQ9KGxvdytoaWdoKS8yOwogICAgaWYoYVttaWRdK3ZhbD09aykKICAgIHsKICAgICAgcmV0dXJuIG1pZC0xOwogICAgfQogICAgZWxzZSBpZihhW21pZF0rdmFsPmspCiAgICB7CiAgICAgIGlmKGFbbWlkLTFdK3ZhbDxrJiZtaWQtMT49aSkKICAgICAgewogICAgICAgIHJldHVybiBtaWQtMTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBpZihtaWQtMTxpKQogICAgICAgIHsKICAgICAgICAgIHJldHVybiBpLTE7CiAgICAgICAgfQogICAgICAgIGhpZ2g9bWlkLTE7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYoYVttaWRdK3ZhbDxrKQogICAgewogICAgICBpZihhW21pZCsxXSt2YWw+PWspCiAgICAgIHsKICAgICAgICByZXR1cm4gbWlkOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICAgbG93PW1pZCsxOwogICAgICB9CiAgICB9CiAgfQogICAgcmV0dXJuIGxvdzsKfQoKaW50IG1haW4oKQp7CiAgbGwgbixrLHAscG9zLHM9MDsKICBjaW4+Pm4+Pms7CiAgbGwgYVtuXTsKICBmb3IobGwgaT0wO2k8bjtpKyspCiAgewogICAgY2luPj5wOwogICAgaWYocDxrKQogICAgewogICAgICBhW3NdPXA7CiAgICAgIHMrKzsKICAgIH0KICB9CiAgc29ydChhLGErcyk7CiAgZm9yKGludCBpPTA7aTxzO2krKykKICB7CiAgICBjb3V0PDxhW2ldPDwiICI7CiAgfQogIGNvdXQ8PGVuZGw7CiAgbGwgYW5zPTA7CiAgZm9yKGludCBpPTA7aTxzLTE7aSsrKQogIHsKICAgIGxsIHo7CiAgICBsbCBwb3M9Z2V0X3BvcyhhLGssYVtpXSxzLGkrMSk7CiAgICBjb3V0PDxwb3M8PCIgIjsKICAgIGlmKHBvcz5pKQogICAgewogICAgICBhbnM9YW5zKyhwb3MtaSk7CiAgICB9CiAgfQogIGNvdXQ8PGVuZGw7CiAgY291dDw8YW5zPDxlbmRsOwp9Cg==