#include <iostream>
#include <algorithm>
#include <stack>
#include <cstring>
#include <vector>
#include <queue>
#include <climits>
typedef long long ll;
using namespace std;
struct Node {
int h, w;
};
vector<Node> nums;
vector<bool> take_out;
vector<vector<int>> dp;
bool cmp(Node n1, Node n2) {
return n1.h < n2.h;
}
int f(int n, int k) {
if (n <= 1) {
return 0;
}
int ans = INT_MAX;
if (dp[n][k] != -1) return dp[n][k];
for (int i = 0; i <= k; ++i) {
int t = abs(nums[n].w - nums[n - i - 1].w);
if (n - i == 1) {
ans = 0;
}
ans = min(ans, t + f(n - i - 1, k - i));
}
dp[n][k] = ans;
return ans;
}
int main() {
int n, k;
cin >> n >> k;
nums.resize(n + 1);
take_out.resize(n + 1, false);
dp.resize(n + 1, vector<int>(k + 1, -1));
for (int i = 1; i <= n; ++i) {
Node node;
cin >> node.h >> node.w;
nums[i] = node;
}
sort(nums.begin() + 1, nums.end(), cmp);
cout << min(f(n, k), f(n - 1, k - 1));
}