#include <bits/stdc++.h>
using namespace std;
int main() {
  cin.tie(0);
  cout.tie(0);
  ios::sync_with_stdio(0);
  int t;
  t = 1;
  while (t--) {
    long long int n, k;
    cin >> n >> k;
    vector<bool> helper(k, false);
    vector<vector<bool>> dp(n, helper);
    vector<long long int> sumr(n), sumb(n);
    long long int ans = 0;
    for (int i = 0; i < n; i++) {
      long long int a, b;
      cin >> a >> b;
      if (i == 0) {
        sumr[i] = a;
        sumb[i] = b;
        dp[i][a % k] = true;
        for (int j = 0; j < min(k, a); j++) {
          if ((k + a - j) % k >= k - b) {
            dp[i][j] = true;
          }
        }
      } else {
        sumr[i] = sumr[i - 1] + a;
        sumb[i] = sumb[i - 1] + b;
        for (int p = 0; p < k; p++) {
          if (dp[i - 1][p] == true) dp[i][(p + a) % k] = true;
        }
        for (int j = 0; j < min(k, a); j++) {
          if ((k + a - j) % k >= k - b) {
            for (int p = 0; p < k; p++) {
              if (dp[i - 1][p] == true) dp[i][(p + j) % k] = true;
            }
          }
        }
      }
    }
    ans = sumr[n - 1] / k + sumb[n - 1] / k;
    long long int a = sumr[n - 1] % k;
    long long int b = sumb[n - 1] % k;
    for (int j = 0; j <= a; j++) {
      if (dp[n - 1][j] == true) {
        if ((b + a - j) >= k) {
          ans++;
          break;
        }
      }
    }
    cout << ans << "\n";
  }
}
