70分
#include <iostream>
using namespace std;
int main() {
int m, n;
bool judge = true;
cin >> n >> m;
int sub[m][4];
for (int i = 0; i < m; i++) {
cin >> sub[i][0];
sub[i][2] = 0;
}
for (int i = 0; i < m; i++) {
cin >> sub[i][1];
sub[i][3] = n - sub[i][1];
}
for (int i = 0; i < m; i++) {
if (sub[i][0] != 0)sub[i][2] += (sub[sub[i][0] - 1][2] + sub[sub[i][0] - 1][1]);
}
for (int i = 0; i < m; i++) {
cout << sub[i][2] + 1 << " ";
if ((sub[i][2] + sub[i][1]) > n)judge = false;
}
cout << endl;
if (!judge) return 0;
else {
for (int i = m - 1; i >= 0; i--) {
if (sub[i][0] != 0) {
cout << sub[i][0] << endl;
sub[sub[i][0] - 1][3] = sub[i][3] - sub[sub[i][0] - 1][1];
}
}
for (int i = 0; i < m; i++)cout << sub[i][3] + 1 << " ";
}
return 0;
}