#include <bits/stdc++.h>
const int INF = 1e9 + 5;
using namespace std;
const int N = 1e6 + 5;
int n, a[N], b[N], fl[N];
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>>
    q1, q2, q3, q4, q5;
void push1(int i) {
  q2.push(make_pair(b[i] - a[i], i));
  q3.push(make_pair(-a[i], i));
  fl[i] = 1;
}
void push2(int i) {
  q5.push(make_pair(a[i] - b[i], i));
  fl[i] = 2;
}
void push0(int i) {
  q1.push(make_pair(a[i], i));
  q4.push(make_pair(b[i], i));
  fl[i] = 0;
}
int main() {
  int T;
  scanf("%d%d", &n, &T);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &a[i], &b[i]);
    q1.push(make_pair(a[i], i));
    q4.push(make_pair(b[i], i));
  }
  long long ans = 0;
  while (T--) {
    while (!q1.empty() && fl[q1.top().second] != 0) q1.pop();
    while (!q2.empty() && fl[q2.top().second] != 1) q2.pop();
    while (!q3.empty() && fl[q3.top().second] != 1) q3.pop();
    while (!q4.empty() && fl[q4.top().second] != 0) q4.pop();
    while (!q5.empty() && fl[q5.top().second] != 2) q5.pop();
    int ret = INF, id = 0;
    if (!q1.empty() && q1.top().first < ret) {
      ret = q1.top().first;
      id = 1;
    }
    if (!q2.empty() && q2.top().first < ret) {
      ret = q2.top().first;
      id = 2;
    }
    if (!q3.empty() && !q4.empty() && q4.top().first + q3.top().first < ret) {
      ret = q4.top().first + q3.top().first;
      id = 3;
    }
    if (!q4.empty() && !q5.empty() && q4.top().first + q5.top().first < ret) {
      ret = q4.top().first + q5.top().first;
      id = 4;
    }
    ans += ret;
    if (id == 1) {
      id = q1.top().second;
      q1.pop();
      push1(id);
    } else if (id == 2) {
      id = q2.top().second;
      q2.pop();
      push2(id);
    } else if (id == 3) {
      id = q4.top().second;
      q4.pop();
      push2(id);
      id = q3.top().second;
      q3.pop();
      push0(id);
    } else {
      id = q5.top().second;
      q5.pop();
      push1(id);
      id = q4.top().second;
      q4.pop();
      push2(id);
    }
  }
  cout << ans << endl;
  for (int i = 1; i <= n; i++) putchar(fl[i] + 48);
  return 0;
}
