#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int cnv[ 101 ] ;
class Solution{
public :
bool canFormArray( vector< int > & arr, vector< vector< int >> & pieces) {
int i;
int j;
int k = 0 ;
for ( i= ( 0 ) ; i< ( 101 ) ; i++ ) {
cnv[ i] = - 1 ;
}
for ( i= ( 0 ) ; i< ( arr.size ( ) ) ; i++ ) {
cnv[ arr[ i] ] = i;
}
for ( i= ( 0 ) ; i< ( pieces.size ( ) ) ; i++ ) {
for ( j= ( 0 ) ; j< ( pieces[ i] .size ( ) ) ; j++ ) {
pieces[ i] [ j] = cnv[ pieces[ i] [ j] ] ;
}
}
sort( pieces.begin ( ) , pieces.end ( ) ) ;
for ( i= ( 0 ) ; i< ( pieces.size ( ) ) ; i++ ) {
for ( j= ( 0 ) ; j< ( pieces[ i] .size ( ) ) ; j++ ) {
if ( pieces[ i] [ j] ! = k) {
return false ;
}
k++ ;
}
}
return true ;
}
}
;
// cLay varsion 20201101-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int cnv[101];
//
// class Solution {
// public:
// bool canFormArray(vector<int>& arr, vector<vector<int>>& pieces) {
// int i, j, k = 0;
// rep(i,101) cnv[i] = -1;
// rep(i,arr.size()) cnv[arr[i]] = i;
// rep(i,pieces.size()) rep(j,pieces[i].size()) pieces[i][j] = cnv[pieces[i][j]];
// sort(pieces.begin(), pieces.end());
// rep(i,pieces.size()) rep(j,pieces[i].size()){
// if(pieces[i][j] != k) return false;
// k++;
// }
// return true;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IGNudlsxMDFdOwpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgYm9vbCBjYW5Gb3JtQXJyYXkodmVjdG9yPGludD4mIGFyciwgdmVjdG9yPHZlY3RvcjxpbnQ+PiYgcGllY2VzKXsKICAgIGludCBpOwogICAgaW50IGo7CiAgICBpbnQgayA9IDA7CiAgICBmb3IoaT0oMCk7aTwoMTAxKTtpKyspewogICAgICBjbnZbaV0gPSAtMTsKICAgIH0KICAgIGZvcihpPSgwKTtpPChhcnIuc2l6ZSgpKTtpKyspewogICAgICBjbnZbYXJyW2ldXSA9IGk7CiAgICB9CiAgICBmb3IoaT0oMCk7aTwocGllY2VzLnNpemUoKSk7aSsrKXsKICAgICAgZm9yKGo9KDApO2o8KHBpZWNlc1tpXS5zaXplKCkpO2orKyl7CiAgICAgICAgcGllY2VzW2ldW2pdID0gY252W3BpZWNlc1tpXVtqXV07CiAgICAgIH0KICAgIH0KICAgIHNvcnQocGllY2VzLmJlZ2luKCksIHBpZWNlcy5lbmQoKSk7CiAgICBmb3IoaT0oMCk7aTwocGllY2VzLnNpemUoKSk7aSsrKXsKICAgICAgZm9yKGo9KDApO2o8KHBpZWNlc1tpXS5zaXplKCkpO2orKyl7CiAgICAgICAgaWYocGllY2VzW2ldW2pdICE9IGspewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBrKys7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMTEwMS0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGludCBjbnZbMTAxXTsKLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGJvb2wgY2FuRm9ybUFycmF5KHZlY3RvcjxpbnQ+JiBhcnIsIHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIHBpZWNlcykgewovLyAgICAgaW50IGksIGosIGsgPSAwOwovLyAgICAgcmVwKGksMTAxKSBjbnZbaV0gPSAtMTsKLy8gICAgIHJlcChpLGFyci5zaXplKCkpIGNudlthcnJbaV1dID0gaTsKLy8gICAgIHJlcChpLHBpZWNlcy5zaXplKCkpIHJlcChqLHBpZWNlc1tpXS5zaXplKCkpIHBpZWNlc1tpXVtqXSA9IGNudltwaWVjZXNbaV1bal1dOwovLyAgICAgc29ydChwaWVjZXMuYmVnaW4oKSwgcGllY2VzLmVuZCgpKTsKLy8gICAgIHJlcChpLHBpZWNlcy5zaXplKCkpIHJlcChqLHBpZWNlc1tpXS5zaXplKCkpewovLyAgICAgICBpZihwaWVjZXNbaV1bal0gIT0gaykgcmV0dXJuIGZhbHNlOwovLyAgICAgICBrKys7Ci8vICAgICB9Ci8vICAgICByZXR1cm4gdHJ1ZTsKLy8gICB9Ci8vIH07Cg==