// C++ Program to implement
// the above approach

#include <bits/stdc++.h>
using namespace std;

// Function to check if string s2
// contains anagram of the string
// s1 as its substring
bool checkAnagram(string s1, string s2)
{
	// Stores frequencies of
	// characters in substrings of s2
	vector<int> s2hash(26, 0);

	// Stores frequencies of
	// characters in s1
	vector<int> s1hash(26, 0);
	int s1len = s1.size();
	int s2len = s2.size();

	// If length of s2 exceeds length of s1
	if (s1len > s2len)
		return false;

	int left = 0, right = 0;

	// Store frequencies of characters in first
	// substring of length s1len in string s2
	while (right < s1len) {

		s1hash[s1[right] - 'a'] += 1;
		s2hash[s2[right] - 'a'] += 1;
		right++;
	}

	right -= 1;

	// Perform Sliding Window technique
	while (right < s2len) {

		// If hashmaps are found to be
		// identical for any substring
		if (s1hash == s2hash)
			return true;

		right++;

		if (right != s2len)
			s2hash[s2[right] - 'a'] += 1;

		s2hash[s2[left] - 'a'] -= 1;
		left++;
	}
	return false;
}

void setup()
{
  Serial.begin(115200);
  Serial.println("Serial Initialized");
}


// Driver Code
void loop()
{
	string s1 = "ab";
	string s2 = "bbpobac";

	if (checkAnagram(s1, s2))
		cout << "YES\n";
	else
		cout << "No\n";

	
}