#include <cstdio>
#include <climits>
#include <queue>
#include <map>
#include <algorithm>
using namespace std;
auto process(auto&& inp)
{
using State = tuple<int, int, vector<int>>;
// get<?>: 0, 1, 2
// 상태 표현: 위치, 마지막으로 이용한 점프, 남은 점프 개수
map<State, int> min_cost;
// 다이나믹 프로그래밍(DP) 테이블,
// sparse하니까(중간중간 빈 칸이 많으니까) 배열 대신 std::map 이용.
vector<int>&& moves = move(inp.first);
vector<int>&& costs = move(inp.second);
int n = costs.size(), m = moves.size();
// 우선순위 큐 (비용이 최소인 pair<비용, 상태>를 얻기 위해 씀).
priority_queue<pair<int, State>,
//first, second
vector<pair<int, State>>,
greater<pair<int, State>>> que;
// 최소 힙(아래 url에서 찾을 수 있다).
// kks227.blog.me/220791188929
// 시작 상태 (비용: 0, 상태: 0번째 칸(다리 밖), 마지막으로 이용한 점프: 없음(-1), 이용 가능한 점프들 수)
que.push(make_pair(0, make_tuple(0, -1, moves)));
// 다익스트라 최단경로 알고리즘
// kks227.blog.me/220796029558
while (!que.empty()) {
auto current = que.top();
que.pop();
// 현재 큐에서 가장 작은 비용을 갖는 상태를 꺼냄
if (current.first > min_cost[current.second]) continue;
// 이미 끝난 상태(위의 블로그 글 보면 설명 있음)면 넘어가자
if (get<0>(current.second) + 1 == n) { // 답(마지막 칸을 밟음)을 찾음
return current.first;
}
for (int i = 0; i < m; i++) if (get<1>(current.second) != i) {
// 마지막으로 이용한 점프가 i가 아니면
auto next = current; // 지금 상태를 복사해서 다음 상태를 만든다
if ((get<0>(next.second) += i + 1) >= n) continue;
// 점프해서 다리 밖으로 나가버리는 경우는 안되고
if (--get<2>(next.second)[i] < 0) continue;
// 점프 개수 초과해서 사용할 수 없다(남은 개수가 0인 점프를 이용하면 안된다).
// 동시에 점프 개수 깎음(-- 연산자).
get<1>(next.second) = i;
// 다음 상태에서 마지막으로 이용한 점프는 i
next.first += costs[get<0>(next.second)];
// 점프한 칸의 비용을 더해주고
if (!min_cost.count(next.second) ||
min_cost[next.second] > next.first) {
// 다음 상태가 여지껏 방문한 적 없는 상태거나 / 이렇게 가는 비용이 더 저렴하면
min_cost[next.second] = next.first;
que.push(next);
// 비용을 갱신하고 큐에 또 넣는다.
// 여기서 다른 상태로 또 뻗어나가면 다른 상태도 비용을 깎을 수 있을지 모르니까.
}
}
}
return -1;
}
auto input()
{
int n, m;
scanf("%d%d", &n, &m); // n: length, m: moves
vector<int> counts(m);
vector<int> costs(++n);
for (int i = 0; i < m; i++) scanf("%d", &counts[i]);
for (int i = 1; i < n; i++) scanf("%d", &costs[i]);
return make_pair(counts, costs);
}
void output(auto&& ans)
{
if (ans == -1) puts("My mother is dead.");
else printf("My mother is fucked by %d different dicks.\n", ans);
}
int main() {
output(process(input()));
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmF1dG8gcHJvY2VzcyhhdXRvJiYgaW5wKQp7Cgl1c2luZyBTdGF0ZSA9IHR1cGxlPGludCwgaW50LCB2ZWN0b3I8aW50Pj47CgkvLyAgICAgICAgICBnZXQ8Pz46ICAwLCAgICAxLCAgICAgICAyCgkvLyDsg4Htg5wg7ZGc7ZiEOiDsnITsuZgsIOuniOyngOunieycvOuhnCDsnbTsmqntlZwg7KCQ7ZSELCDrgqjsnYAg7KCQ7ZSEIOqwnOyImAoKCW1hcDxTdGF0ZSwgaW50PiBtaW5fY29zdDsKCS8vIOuLpOydtOuCmOuvuSDtlITroZzqt7jrnpjrsI0oRFApIO2FjOydtOu4lCwKCS8vIHNwYXJzZe2VmOuLiOq5jCjspJHqsITspJHqsIQg67mIIOy5uOydtCDrp47snLzri4jquYwpIOuwsOyXtCDrjIDsi6Agc3RkOjptYXAg7J207JqpLgoKCXZlY3RvcjxpbnQ+JiYgbW92ZXMgPSBtb3ZlKGlucC5maXJzdCk7Cgl2ZWN0b3I8aW50PiYmIGNvc3RzID0gbW92ZShpbnAuc2Vjb25kKTsKCWludCBuID0gY29zdHMuc2l6ZSgpLCBtID0gbW92ZXMuc2l6ZSgpOwoKCS8vIOyasOyEoOyInOychCDtgZAgKOu5hOyaqeydtCDstZzshozsnbggcGFpcjzruYTsmqksIOyDge2DnD7rpbwg7Ja76riwIOychO2VtCDslIApLgoJcHJpb3JpdHlfcXVldWU8cGFpcjxpbnQsIFN0YXRlPiwKCQkJCQkvL2ZpcnN0LCAgc2Vjb25kCgkJCQkgICB2ZWN0b3I8cGFpcjxpbnQsIFN0YXRlPj4sCgkJCQkgICBncmVhdGVyPHBhaXI8aW50LCBTdGF0ZT4+PiBxdWU7CgkJCQkgICAvLyDstZzshowg7Z6ZKOyVhOuemCB1cmzsl5DshJwg7LC+7J2EIOyImCDsnojri6QpLgoJCQkJICAgLy8ga2tzMjI3LmJsb2cubWUvMjIwNzkxMTg4OTI5CgoJLy8g7Iuc7J6RIOyDge2DnCAo67mE7JqpOiAwLCDsg4Htg5w6IDDrsojsp7gg7Lm4KOuLpOumrCDrsJYpLCDrp4jsp4Drp4nsnLzroZwg7J207Jqp7ZWcIOygkO2UhDog7JeG7J2MKC0xKSwg7J207JqpIOqwgOuKpe2VnCDsoJDtlITrk6Qg7IiYKQoJcXVlLnB1c2gobWFrZV9wYWlyKDAsIG1ha2VfdHVwbGUoMCwgLTEsIG1vdmVzKSkpOwoKCS8vIOuLpOydteyKpO2KuOudvCDstZzri6jqsr3roZwg7JWM6rOg66as7KaYCgkvLyBra3MyMjcuYmxvZy5tZS8yMjA3OTYwMjk1NTgKCXdoaWxlICghcXVlLmVtcHR5KCkpIHsKCQlhdXRvIGN1cnJlbnQgPSBxdWUudG9wKCk7CgkJcXVlLnBvcCgpOwoJCS8vIO2YhOyerCDtgZDsl5DshJwg6rCA7J6lIOyekeydgCDruYTsmqnsnYQg6rCW64qUIOyDge2DnOulvCDqurzrg4QKCQlpZiAoY3VycmVudC5maXJzdCA+IG1pbl9jb3N0W2N1cnJlbnQuc2Vjb25kXSkgY29udGludWU7CgkJLy8g7J2066+4IOuBneuCnCDsg4Htg5wo7JyE7J2YIOu4lOuhnOq3uCDquIAg67O066m0IOyEpOuqhSDsnojsnYwp66m0IOuEmOyWtOqwgOyekAoJCWlmIChnZXQ8MD4oY3VycmVudC5zZWNvbmQpICsgMSA9PSBuKSB7IC8vIOuLtSjrp4jsp4Drp4kg7Lm47J2EIOuwn+ydjCnsnYQg7LC+7J2MCgkJCXJldHVybiBjdXJyZW50LmZpcnN0OwoJCX0KCQlmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgaWYgKGdldDwxPihjdXJyZW50LnNlY29uZCkgIT0gaSkgewoJCQkJCQkvLyDrp4jsp4Drp4nsnLzroZwg7J207Jqp7ZWcIOygkO2UhOqwgCBp6rCAIOyVhOuLiOuptAoJCQlhdXRvIG5leHQgPSBjdXJyZW50OyAvLyDsp4DquIgg7IOB7YOc66W8IOuzteyCrO2VtOyEnCDri6TsnYwg7IOB7YOc66W8IOunjOuToOuLpAoJCQlpZiAoKGdldDwwPihuZXh0LnNlY29uZCkgKz0gaSArIDEpID49IG4pIGNvbnRpbnVlOwoJCQkvLyDsoJDtlITtlbTshJwg64uk66asIOuwluycvOuhnCDrgpjqsIDrsoTrpqzripQg6rK97Jqw64qUIOyViOuQmOqzoAoJCQlpZiAoLS1nZXQ8Mj4obmV4dC5zZWNvbmQpW2ldIDwgMCkgY29udGludWU7CgkJCS8vIOygkO2UhCDqsJzsiJgg7LSI6rO87ZW07IScIOyCrOyaqe2VoCDsiJgg7JeG64ukKOuCqOydgCDqsJzsiJjqsIAgMOyduCDsoJDtlITrpbwg7J207Jqp7ZWY66m0IOyViOuQnOuLpCkuCgkJCS8vIOuPmeyLnOyXkCDsoJDtlIQg6rCc7IiYIOq5juydjCgtLSDsl7DsgrDsnpApLgoJCQlnZXQ8MT4obmV4dC5zZWNvbmQpID0gaTsKCQkJLy8g64uk7J2MIOyDge2DnOyXkOyEnCDrp4jsp4Drp4nsnLzroZwg7J207Jqp7ZWcIOygkO2UhOuKlCBpCgkJCW5leHQuZmlyc3QgKz0gY29zdHNbZ2V0PDA+KG5leHQuc2Vjb25kKV07CgkJCS8vIOygkO2UhO2VnCDsubjsnZgg67mE7Jqp7J2EIOuNlO2VtOyjvOqzoAoJCQlpZiAoIW1pbl9jb3N0LmNvdW50KG5leHQuc2Vjb25kKSB8fAoJCQkJbWluX2Nvc3RbbmV4dC5zZWNvbmRdID4gbmV4dC5maXJzdCkgewoJCQkJLy8g64uk7J2MIOyDge2DnOqwgCDsl6zsp4Dqu48g67Cp66y47ZWcIOyggSDsl4bripQg7IOB7YOc6rGw64KYIC8g7J2066CH6rKMIOqwgOuKlCDruYTsmqnsnbQg642UIOyggOugtO2VmOuptAoJCQkJbWluX2Nvc3RbbmV4dC5zZWNvbmRdID0gbmV4dC5maXJzdDsKCQkJCXF1ZS5wdXNoKG5leHQpOwoJCQkJLy8g67mE7Jqp7J2EIOqwseyLoO2VmOqzoCDtgZDsl5Ag65iQIOuEo+uKlOuLpC4KCQkJCS8vIOyXrOq4sOyEnCDri6Trpbgg7IOB7YOc66GcIOuYkCDru5fslrTrgpjqsIDrqbQg64uk66W4IOyDge2DnOuPhCDruYTsmqnsnYQg6rmO7J2EIOyImCDsnojsnYTsp4Ag66qo66W064uI6rmMLgoJCQl9CgkJfQoJfQoKCXJldHVybiAtMTsKfQoKYXV0byBpbnB1dCgpCnsKCWludCBuLCBtOwoJc2NhbmYoIiVkJWQiLCAmbiwgJm0pOyAvLyBuOiBsZW5ndGgsIG06IG1vdmVzCgl2ZWN0b3I8aW50PiBjb3VudHMobSk7Cgl2ZWN0b3I8aW50PiBjb3N0cygrK24pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHNjYW5mKCIlZCIsICZjb3VudHNbaV0pOwoJZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCIsICZjb3N0c1tpXSk7CglyZXR1cm4gbWFrZV9wYWlyKGNvdW50cywgY29zdHMpOwp9Cgp2b2lkIG91dHB1dChhdXRvJiYgYW5zKQp7CglpZiAoYW5zID09IC0xKSBwdXRzKCJNeSBtb3RoZXIgaXMgZGVhZC4iKTsKCWVsc2UgcHJpbnRmKCJNeSBtb3RoZXIgaXMgZnVja2VkIGJ5ICVkIGRpZmZlcmVudCBkaWNrcy5cbiIsIGFucyk7Cn0KCmludCBtYWluKCkgewoJb3V0cHV0KHByb2Nlc3MoaW5wdXQoKSkpOwoJcmV0dXJuIDA7Cn0=