#include <iostream>
#include <stdio.h>
#include <cctype>
#include <list>
#include <vector>
using namespace std
;
struct STATE
{
int id
;
bool send
;
};
int main() {
int T
, n
;
cin
>> T
>> n
;
getchar();
while (T
--) {
vector
<list
<STATE
> > A
;
for (int k
= 0; k
< n
; ++k
) {
string s
;
getline(cin
, s
);
list
<STATE
> cur
;
for (int i
= 0; i
< s
.length();) {
STATE x
;
x
.send
= s
[i
] == 'S';
x
.id
= 0;
while (isdigit(s
[++i
])) x
.id
= x
.id
* 10 + s
[i
] - '0';
++i
;
cur
.push_back(x
);
}
A
.push_back(cur
);
}
while (true) {
bool done
= true;
bool refreshed
= false;
for (int i
= 0; i
< n
; ++i
) if (!A
[i
].empty()) {
done
= false;
if (!A
[i
].begin()->send
) {
int idx
= A
[i
].begin()->id
;
if (!A
[idx
].empty() && A
[idx
].begin()->send
&& A
[idx
].begin()->id
== i
) {
A
[idx
].erase(A
[idx
].begin());
A
[i
].erase(A
[i
].begin());
refreshed
= true;
break;
}
}
}
if (done
) {
cout
<< 0 << endl
;
break;
} else if (!refreshed
) {
cout
<< 1 << endl
;
break;
}
}
}
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-490009.html