// ROOT : DRAGON3012009
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define el "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define __ROOT__ int main()
#pragma GCC optimize("O2")
#define FOR(i,l,r) for(int i = l ; i <= r ; i ++)
#define FORD(i,r,l) for(int i = r ; i >= l ; i --)
#define REP(i, a ) for(int i = 0 ; i < a ; i ++ )
#define fi first
#define se second
#define M 1000000007
#define MAXN 100001
#define INF (1ll<<30)
#define BLOCK_SIZE 800
#define MAX_NODE 1001001
#define LOG 19
#define ALPHA_SIZE 26
#define BASE 311
#define NAME "file"
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end());
using namespace std;
const ll MOD[] = {(ll)1e9 + 2277, (ll)1e9 + 5277, (ll)1e9 + 8277, (ll)1e9 + 9277, (ll) 1e9 + 7 };
const ll NMOD = 1;
const int dx[] = {-1, 0, 1,0};
const int dy[] = {0, 1, 0, -1};
//**Variable**//
ll n, m, cnt_heavy = 0, q ;
ll arr[MAXN];
ll lazy[MAXN] ;
ll sum[MAXN] ;
ll real_pos[MAXN] ;
ll cnt[MAXN/BLOCK_SIZE+100][MAXN] ; // giao nặng nhẹ
//**Struct**//
struct S {
vector<ll> Set;
ll sz, id ;
bool operator < ( const S &other ) const {
return sz > other.sz ;
}
};
S s[ 2 * MAXN ];
//**Function**//
template<class X, class Y >
bool minimize(X & x, const Y &y ) {
return x > y ? x = y, 1:0 ;
}
template<class X, class Y >
bool maximize(X &x, const Y &y ) {
return x < y ? x = y, 1:0 ;
}
bool exitt[MAXN] ;
void init() {
cin>>n >> m >> q ;
FOR(i,1, n) cin >> arr[i] ;
FOR(i, 1, m) {
cin>>s[i].sz ;
s[i].Set.resize(s[i].sz) ;
FOR(j, 0, s[i].sz -1 ) cin>> s[i].Set[j] ;
s[i].id = i ;
if(s[i].sz >= BLOCK_SIZE) cnt_heavy ++ ;
}
sort(s + 1, s + m + 1) ;
FOR(i, 1, m ) {
real_pos[s[i].id] = i ;
}
FOR(i, 1, cnt_heavy) {
for(ll v : s[i].Set) {
exitt[v] = true ;
}
FOR(j, 1, m ) {
for(ll val : s[j].Set) {
cnt[i][j] += exitt[val] ;
}
}
for(ll v : s[i].Set) {
exitt[v] = false ;
}
}
FOR(i, 1, m ) {
for(ll p : s[i].Set) sum[i] += arr[p] ;
}
memset(arr, 0, sizeof arr) ;
}
void solve() {
FOR(i, 1, q) {
ll p, value;
char t;
cin >> t;
if (t == '+') {
cin >> p >> value;
p = real_pos[p];
if (s[p].sz >= BLOCK_SIZE) {
lazy[p] += value;
} else {
FOR(j, 1, cnt_heavy) sum[j] += value * cnt[j][p];
for (ll pos : s[p].Set) arr[pos] += value;
}
} else {
cin >> p;
p = real_pos[p];
if (s[p].sz >= BLOCK_SIZE) {
ll ans = sum[p];
FOR(j, 1, cnt_heavy)
ans += lazy[j] * cnt[j][p];
cout << ans << el;
} else {
ll ans = sum[p] ;
for (ll pos : s[p].Set) ans += arr[pos];
FOR(j, 1, cnt_heavy) ans += lazy[j] * cnt[j][p];
cout << ans << el;
}
}
}
}
__ROOT__ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
fast;
int t =1 ;// cin >> t;
while(t-- ) {
init();
solve();
}
}
Ly8gUk9PVCA6IERSQUdPTjMwMTIwMDkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBlbCAiXG4iCiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBfX1JPT1RfXyBpbnQgbWFpbigpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IoaW50IGkgPSBsIDsgaSA8PSByIDsgaSArKykKI2RlZmluZSBGT1JEKGkscixsKSBmb3IoaW50IGkgPSByIDsgaSA+PSBsIDsgaSAtLSkKI2RlZmluZSBSRVAoaSwgYSApIGZvcihpbnQgaSA9IDAgOyBpIDwgYSA7IGkgKysgKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgTSAxMDAwMDAwMDA3CiNkZWZpbmUgTUFYTiAxMDAwMDEKI2RlZmluZSBJTkYgKDFsbDw8MzApCiNkZWZpbmUgQkxPQ0tfU0laRSA4MDAKI2RlZmluZSBNQVhfTk9ERSAxMDAxMDAxCiNkZWZpbmUgTE9HIDE5CiNkZWZpbmUgQUxQSEFfU0laRSAyNgojZGVmaW5lIEJBU0UgMzExCiNkZWZpbmUgTkFNRSAiZmlsZSIKI2RlZmluZSBjb21wYXJlKHYpIHNvcnQoKHYpLmJlZ2luKCksICh2KS5lbmQoKSk7ICh2KS5lcmFzZSh1bmlxdWUoKHYpLmJlZ2luKCksICh2KS5lbmQoKSksICh2KS5lbmQoKSk7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxsIE1PRFtdID0geyhsbCkxZTkgKyAyMjc3LCAobGwpMWU5ICsgNTI3NywgKGxsKTFlOSArIDgyNzcsIChsbCkxZTkgKyA5Mjc3LCAobGwpIDFlOSArIDcgfTsKY29uc3QgbGwgTk1PRCA9IDE7CmNvbnN0IGludCBkeFtdID0gey0xLCAwLCAxLDB9Owpjb25zdCBpbnQgZHlbXSA9IHswLCAxLCAwLCAtMX07Ci8vKipWYXJpYWJsZSoqLy8KbGwgbiwgbSwgY250X2hlYXZ5ID0gMCwgcSA7CmxsIGFycltNQVhOXTsKbGwgbGF6eVtNQVhOXSA7CmxsIHN1bVtNQVhOXSA7CmxsIHJlYWxfcG9zW01BWE5dIDsKbGwgY250W01BWE4vQkxPQ0tfU0laRSsxMDBdW01BWE5dIDsgLy8gZ2lhbyBu4bq3bmcgbmjhurkgCi8vKipTdHJ1Y3QqKi8vCnN0cnVjdCBTIHsKICAgIHZlY3RvcjxsbD4gU2V0OwogICAgbGwgc3osIGlkIDsKICAgIGJvb2wgb3BlcmF0b3IgPCAoIGNvbnN0IFMgJm90aGVyICkgY29uc3QgewogICAgICAgIHJldHVybiBzeiA+IG90aGVyLnN6IDsKICAgIH0KfTsKUyBzWyAyICogTUFYTiBdOwovLyoqRnVuY3Rpb24qKi8vCnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFkgPgpib29sIG1pbmltaXplKFggJiB4LCBjb25zdCBZICZ5ICkgewogICAgcmV0dXJuIHggPiB5ID8geCA9IHksIDE6MCA7Cn0KdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWSA+CmJvb2wgbWF4aW1pemUoWCAmeCwgY29uc3QgWSAmeSApIHsKICAgIHJldHVybiB4IDwgeSA/IHggPSB5LCAxOjAgOwp9CmJvb2wgZXhpdHRbTUFYTl0gOwp2b2lkIGluaXQoKSB7CiAgICBjaW4+Pm4gPj4gbSA+PiBxICA7CiAgICBGT1IoaSwxLCBuKSBjaW4gPj4gYXJyW2ldIDsKICAgIEZPUihpLCAxLCBtKSB7CiAgICAgICAgY2luPj5zW2ldLnN6IDsKICAgICAgICBzW2ldLlNldC5yZXNpemUoc1tpXS5zeikgOwogICAgICAgIEZPUihqLCAwLCBzW2ldLnN6IC0xICApIGNpbj4+IHNbaV0uU2V0W2pdIDsKICAgICAgICBzW2ldLmlkICA9IGkgOwogICAgICAgIGlmKHNbaV0uc3ogPj0gQkxPQ0tfU0laRSkgY250X2hlYXZ5ICsrIDsKICAgIH0KICAgIHNvcnQocyArIDEsIHMgKyBtICsgMSkgOwogICAgRk9SKGksIDEsIG0gKSB7CiAgICAgICAgcmVhbF9wb3Nbc1tpXS5pZF0gPSBpIDsKICAgIH0KCiAgICBGT1IoaSwgMSwgY250X2hlYXZ5KSB7CiAgICAgICAgZm9yKGxsIHYgOiBzW2ldLlNldCkgewogICAgICAgICAgICBleGl0dFt2XSA9IHRydWUgOwogICAgICAgIH0KICAgICAgICBGT1IoaiwgMSwgbSApIHsKICAgICAgICAgICAgZm9yKGxsIHZhbCA6IHNbal0uU2V0KSB7CiAgICAgICAgICAgICAgICBjbnRbaV1bal0gKz0gZXhpdHRbdmFsXSA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yKGxsIHYgOiBzW2ldLlNldCkgewogICAgICAgICAgICBleGl0dFt2XSA9IGZhbHNlIDsKICAgICAgICB9CiAgICB9CiAgICBGT1IoaSwgMSwgbSApIHsKICAgICAgICBmb3IobGwgcCA6IHNbaV0uU2V0KSBzdW1baV0gKz0gYXJyW3BdIDsKICAgIH0KICAgIG1lbXNldChhcnIsIDAsIHNpemVvZiBhcnIpIDsKfQp2b2lkIHNvbHZlKCkgewogICAgRk9SKGksIDEsIHEpIHsKICAgICAgICBsbCBwLCB2YWx1ZTsKICAgICAgICBjaGFyIHQ7CiAgICAgICAgY2luID4+IHQ7CiAgICAgICAgaWYgKHQgPT0gJysnKSB7CiAgICAgICAgICAgIGNpbiA+PiBwID4+IHZhbHVlOwogICAgICAgICAgICBwID0gcmVhbF9wb3NbcF07CiAgICAgICAgICAgIGlmIChzW3BdLnN6ID49IEJMT0NLX1NJWkUpIHsKICAgICAgICAgICAgICAgIGxhenlbcF0gKz0gdmFsdWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBGT1IoaiwgMSwgY250X2hlYXZ5KSBzdW1bal0gKz0gdmFsdWUgKiBjbnRbal1bcF07CiAgICAgICAgICAgICAgICBmb3IgKGxsIHBvcyA6IHNbcF0uU2V0KSBhcnJbcG9zXSArPSB2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNpbiA+PiBwOwogICAgICAgICAgICBwID0gcmVhbF9wb3NbcF07CiAgICAgICAgICAgIGlmIChzW3BdLnN6ID49IEJMT0NLX1NJWkUpIHsKICAgICAgICAgICAgICAgIGxsIGFucyA9IHN1bVtwXTsgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBGT1IoaiwgMSwgY250X2hlYXZ5KSAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGFucyArPSBsYXp5W2pdICogY250W2pdW3BdOyAgICAgCiAgICAgICAgICAgICAgICBjb3V0IDw8IGFucyA8PCBlbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxsIGFucyA9ICBzdW1bcF0gOwogICAgICAgICAgICAgICAgZm9yIChsbCBwb3MgOiBzW3BdLlNldCkgYW5zICs9IGFycltwb3NdOwogICAgICAgICAgICAgICAgRk9SKGosIDEsIGNudF9oZWF2eSkgYW5zICs9IGxhenlbal0gKiBjbnRbal1bcF07CiAgICAgICAgICAgICAgICBjb3V0IDw8IGFucyA8PCBlbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKCl9fUk9PVF9fIHsKLy8gICAgIGZyZW9wZW4oTkFNRSIuaW5wIiAsICJyIiAsIHN0ZGluKTsKLy8gICAgIGZyZW9wZW4oTkFNRSIub3V0IiAsICJ3Iiwgc3Rkb3V0KSA7CiAgICBmYXN0OwogICAgaW50IHQgPTEgOy8vICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tICkgewogICAgICAgIGluaXQoKTsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9Cg==