yes
Code-
`
#include<bits/stdc++.h>
using namespace std;
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
#define ll long long
#define fast ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
#define mod 1000000007
#define pb push_back
#define S second
#define F first
#define P pair<ll,ll>
#define PI 3.1415926535897932384626433832795028
//#define ordered_set tree<ll, null_type,less_equal<>, rb_tree_tag,tree_order_statistics_node_update>
int32_t main()
{
fast
// #ifndef ONLINE_JUDGE
// freopen(“input.txt”, “r”, stdin);
// freopen(“output.txt”, “w”, stdout);
// #endif
ll n, m;
cin >> n >> m;
ll a[500][500];
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
cin >> a[i][j];
}
}
vector r;
ll c;
while (cin >> c) {
r.pb©;
}
ll layer = r.size();
for (ll i = 0; i < layer; i++) {
ll rotL = r[i];
// cout << rotL << endl;
vector<ll> rot;
for (ll j = i; j < m - i; j++)
rot.pb(a[i][j]);
for (ll j = i + 1; j < n - i; j++)
rot.pb(a[j][m - i - 1]);
for (ll j = m - i - 2; j >= i; j--)
rot.pb(a[n - i - 1][j]);
for (ll j = n - i - 2; j > i; j--)
rot.pb(a[j][i]);
// for (auto x : rot)
// cout << x << " ";
// cout << endl;
rotL = rotL % rot.size();
if (i % 2 == 0) {
// left
rotate(rot.begin(), rot.begin() + rotL, rot.end());
// for (auto x : rot)
// cout << x << " ";
// cout << endl;
ll kk = 0;
for (ll j = i; j < m - i; j++)
a[i][j] = rot[kk++];
for (ll j = i + 1; j < n - i; j++)
a[j][m - i - 1] = rot[kk++];
for (ll j = m - i - 2; j >= i; j--)
a[n - i - 1][j] = rot[kk++];
for (ll j = n - i - 2; j > i; j--)
a[j][i] = rot[kk++];
}
else {
// right
rotate(rot.begin(), rot.begin() + rot.size() - rotL, rot.end());
// for (auto x : rot)
// cout << x << " ";
ll kk = 0;
for (ll j = i; j < m - i; j++)
a[i][j] = rot[kk++];
for (ll j = i + 1; j < n - i; j++)
a[j][m - i - 1] = rot[kk++];
for (ll j = m - i - 2; j >= i; j--)
a[n - i - 1][j] = rot[kk++];
for (ll j = n - i - 2; j > i; j--)
a[j][i] = rot[kk++];
}
}
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << endl;
}
}
`









