In this HackerEarth Find the String problem solution You are given a matrix of characters. The matrix has N rows and M columns. Given a string s, you have to tell if it is possible to generate that string from given matrix.
Rules for generating string from matrix are:

You have to pick first character of string from row 1, second character from row 2 and so on. The  character of string is to be picked from row 1, that is, you can traverse the (N + 1)th rows in a cyclic manner (row 1 comes after row N).
If an occurrence of a character is picked from a row, you cannot pick the same occurrence again from that row.
You have to print Yes if given string can be generated from matrix using the given rules, else print No.

## HackerEarth Find the String problem solution.

```#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m;
string s;
cin>>n>>m;
int f[1005][26]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
char temp;
cin>>temp;
f[i][temp-'a']++;
}
}
cin>>s;
bool check=1;
for(int i=0;i<s.size() && f;i++)
{
int lev=i%n;
if(f[lev][s[i]-'a'])f[lev][s[i]-'a']--;
else check=0;
}
if(check)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}```