1912 {
1913 int n;
1914 int k;
1915 cin >> n >> k;
1916 vector<Person> vec(n);
1917 for(int i = 0; i < n; i++) {
1918 string name;
1919 int height;
1920 cin >> name >> height;
1921 const auto p =
Person{name, height};
1922 vec[i] = p;
1923 }
1924 sort(vec.begin(), vec.end());
1925 vector<deque<Person>> deq(k);
1926 for(int i = 0; i < n / k + n % k; i++) {
1927 if(i % 2 == 1) {
1928 deq[k - 1].push_front(vec.back());
1929 } else {
1930 deq[k - 1].push_back(vec.back());
1931 }
1933 }
1934 for(int i = k - 2; i >= 0; i--) {
1935 for(int j = 0; j < n / k; j++) {
1936 if(j % 2 == 1) {
1937 deq[i].push_front(
vec.back());
1938 } else {
1939 deq[i].push_back(
vec.back());
1940 }
1942 }
1943 }
1944 for(int i = k - 1; i >= 0; i--) {
1945 for(int j = 0; j < deq[i].size(); j++) {
1946 cout << deq[i][j].name;
1947 if(j != deq[i].size() - 1) {
1948 cout << ' ';
1949 }
1950 }
1951 if(i != 0) {
1952 cout << endl;
1953 }
1954 }
1955 return 0;
1956 }