#include <bits/stdc++.h>
using namespace std;
long long a[1000005], vis[1000005], n, c, p, m, s[1000005], ans;
void dfs (long long sum, long long d, long long y)
{
if (d == m)
{
if (sum < ans) ans = sum;
return;
}
if (sum >= ans) return;
for (int i = 1; i <= m; i++)
{
if (vis[s[i]] == 1) continue;
vis[s[i]] = 1;
dfs (sum + a[y] - 2 * a[s[i]] + c, d + 1, s[i]);
vis[s[i]] = 0;
}
}
int main ()
{
scanf ("%d%d%d", &n, &c, &p);
for (int i = 1; i <= n; i++) scanf ("%d", &a[i]);
while (p--)
{
ans = INT_MAX;
memset (vis, 0, sizeof (vis));
memset (s, 0, sizeof (s));
scanf ("%d", &m);
for (int i = 1; i <= m; i++) scanf ("%d", &s[i]);
for (int i = 1; i <= m; i++)
{
vis[s[i]] = 1;
dfs (0, 1, s[i]);
vis[s[i]] = 0;
}
printf ("%d\n", ans);
}
return 0;
}