4126.Lucky Queries

Time Limit: 1s Memory Limit: 256MB

Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Petya brought home string s with the length of n. The string only consists of lucky digits. The digits are numbered from the left to the right starting with 1. Now Petya should execute m queries of the following form:
switch l r - "switch" digits (i.e. replace them with their opposites) at all positions with indexes from l to r, inclusive: each digit 4 is replaced with 7 and each digit 7 is replaced with 4 (1 \le l \le r \le n); count - find and print on the screen the length of the longest non-decreasing subsequence of string s.
Subsequence of a string s is a string that can be obtained from s by removing zero or more of its elements. A string is called non-decreasing if each successive digit is not less than the previous one.

Help Petya process the requests.

Input Format(From the terminal/stdin)

The first line contains two integers n and m (1 \le n \le 106,1 \le m \le 3 \cdot 105) - the length of the string s and the number of queries correspondingly. The second line contains n lucky digits without spaces - Petya's initial string. Next m lines contain queries in the form described in the statement.

Output Format(To the terminal/stdout)

For each query count print an answer on a single line.

Sample Input 1

Copy
2 3
47
count
switch 1 2
count
 · \n
  \n
     \n
      · · \n
     \n

Sample Output 1

Copy
2
1
 \n
 \n

Sample Input 2

Copy
3 5
747
count
switch 1 1
count
switch 1 3
count
 · \n
   \n
     \n
      · · \n
     \n
      · · \n
     \n

Sample Output 2

Copy
2
3
2
 \n
 \n
 \n

Hints

In the first sample the chronology of string s after some operations are fulfilled is as follows (the sought maximum subsequence is marked with bold):
47 74 74 In the second sample: 747 447 447 774 774

Submit

请先 登录

© 2025 FAQs