#include <bits/stdc++.h>
using namespace std;
const int E = 5e2 + 5;
int a, b, n, k;
bool dp[E][E];
long long c, d, ans;
int main() {
  scanf("%d%d", &n, &k);
  dp[0][0] = 1;
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &a, &b);
    c += a;
    d += b;
    for (int j = 0; j < k; j++) {
      if (dp[i][j]) {
        dp[i + 1][j] = 1;
      }
    }
    for (int l = 0; l < k; l++) {
      if (dp[i][l]) {
        for (int j = max(k - b, 1); j <= min(a, k - 1); j++) {
          dp[i + 1][(l + j) % k] = 1;
        }
      }
    }
  }
  ans = c / k + d / k;
  for (int i = 0; i < k; i++) {
    if (dp[n][i]) {
      ans = max(ans, (c - i) / k + (d + i) / k);
    }
  }
  printf("%lld\n", ans);
}
