#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <functional>
#include <iostream>
#include <map>
#include <set>
using namespace std;
typedef pair<int,int> P;
typedef pair<int,P> P1;
typedef pair<P,P> P2;
#define pu push
#define pb push_back
#define mp make_pair
#define eps 1e-7
#define INF 1000000000
int n,m;
int st[155][11][2];
int dp[155][11][76];
int num[155];
int main(){
    while(1)
    {
	scanf("%d %d",&n,&m);
	if(!n) return 0;
        for(int i=1;i<=n;i++){
            scanf("%d",&num[i]);
            for(int j=1;j<=num[i];j++){
                scanf("%d %d",&st[i][j][0],&st[i][j][1]);
            }
        }

        for(int i=0;i<155;i++){
            for(int j=0;j<11;j++){
                for(int k=0;k<=m;k++){
                    dp[i][j][k]=INF;
                }
            }
        }

        for(int j=1;j<=num[1];j++){
            for(int k=0;k<=m;k++){
                dp[1][j][k]=0;
            }
        }
        for(int j=1;j<=num[2];j++){
            for(int k=1;k<=m;k++){
                dp[2][j][k]=0;
            }
            for(int y=1;y<=num[1];y++){
                dp[2][j][0]=min(dp[2][j][0],dp[1][y][0]+abs(st[1][y][0]-st[2][j][0])*(st[1][y][1]+st[2][j][1]));
            }
        }

        int ans=INF;

        for(int i=3;i<=n;i++){
            for(int j=1;j<=num[i];j++){
                for(int k=0;k<=m;k++){
                    for(int g=1;g<=num[i-1];g++){
                        dp[i][j][k]=min(dp[i][j][k],dp[i-1][g][k]+abs(st[i][j][0]-st[i-1][g][0])*(st[i][j][1]+st[i-1][g][1]));
                    }
                    if(k!=0){
                        for(int l=1;l<=num[i-2];l++){
                            dp[i][j][k]=min(dp[i][j][k],dp[i-2][l][k-1]+abs(st[i][j][0]-st[i-2][l][0])*(st[i][j][1]+st[i-2][l][1]));
                        }
                    }
                }
            }
        }

        int res=INF;
        for(int j=1;j<=num[n];j++){
            for(int k=0;k<=m;k++){
            res=min(res,dp[n][j][k]);
            }
        }
        for(int j=1;j<=num[n-1];j++){
            for(int k=1;k<m;k++){
            res=min(res,dp[n-1][j][k]);
            }
        }
        printf("%d\n",res);
    }
}