In this HackerEarth Grid and phrase problem solution, You are given an n*m grid which contains lower case English letters. How many times does the phrase "saba" appear horizontally, vertically, and diagonally in the grid?

## HackerEarth Grid and phrase problem solution.

```#include<bits/stdc++.h>
using namespace std;
#define int long long
const int M=1e2+10;
int n,m,ans;
bool check(char a,char b,char c,char d)
{
if(a=='s' && b=='a' && c=='b' && d=='a')
return true;
return false;
}
int32_t main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int i=4;i<=n;i++)
for(int j=1;j<=m-3;j++)
ans++;
for(int i=1;i<=n-3;i++)
for(int j=1;j<=m-3;j++)
ans++;
for(int i=1;i<=n;i++)
for(int j=1;j<=m-3;j++)
ans++;
for(int i=1;i<=n-3;i++)
for(int j=1;j<=m;j++)
ans++;
cout<<ans<<endl;
return 0;
}```

### Second solution

```#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxN=1e3+123;

string saba="saba";
string s[maxN];

int32_t main(){
int n,m;
cin>>n>>m;
int ans=0;
for(int i=0;i<n;i++)cin>>s[i];
for(int i=0;i<n-3;i++){
for(int j=0;j<m-3;j++){
bool b=true;
for(int k=0;k<4;k++){
if(s[i+k][j+k]!=saba[k])b=false;
}
if(b)ans++;
}
}
for(int i=0;i<n-3;i++){
for(int j=0;j<m;j++){
bool b=true;
for(int k=0;k<4;k++){
if(s[i+k][j]!=saba[k])b=false;
}
if(b)ans++;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m-3;j++){
bool b=true;
for(int k=0;k<4;k++){
if(s[i][j+k]!=saba[k])b=false;
}
if(b)ans++;
}
}
for(int i=3;i<n;i++){
for(int j=0;j<m-3;j++){
bool b=true;
for(int k=0;k<4;k++){
if(s[i-k][j+k]!=saba[k])b=false;
}
if(b)ans++;
}
}
cout<<ans<<endl;
}```