#include <bits/stdc++.h>

using namespace std;

const int inf = 0x3f3f3f3f;

const int mmax = 1e3 + 10;
const int nmax = 17;

int n, m;
int cost[mmax], p[mmax];
int dp[1<<nmax], cnt[1<<nmax];

void input() {
    scanf("%d %d", &n, &m);
    for (int i = 1; i <= m; ++i) {
        int nr; scanf("%d %d", &nr, &cost[i]);
        for (int j = 1; j <= nr; ++j) {
            int x; scanf("%d", &x); x--;
            p[i] |= (1 << x);
        }
    }
}

void solve() {
    memset(dp, inf, sizeof(dp));

    dp[0] = 0;
    for (int conf = 0; conf < (1 << n); ++conf)
        for (int i = 1; i <= m; ++i)
            if (dp[conf] + cost[i] < dp[conf|p[i]])
                dp[conf|p[i]] = min(dp[conf|p[i]], dp[conf] + cost[i]),
                cnt[conf|p[i]] = cnt[conf] + 1;
            else if (dp[conf] + cost[i] == dp[conf|p[i]])
                cnt[conf|p[i]] = min(cnt[conf|p[i]], cnt[conf] + 1);
}

void output() {
    printf("%d\n", dp[(1<<n)-1]);
    //printf("%d\n", cnt[(1<<n)-1]);
}

int main()
{
    freopen("promotie.in","r",stdin);
    freopen("promotie.out","w",stdout);

    input();
    solve();
    output();

    return 0;
}
