A - Capitalized?

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 100

問題文

英大文字・英小文字からなる空でない文字列 S が与えられます。以下の条件が満たされているか判定してください。

  • S の先頭の文字は大文字であり、それ以外の文字はすべて小文字である。

制約

  • 1 \leq |S| \leq 100|S| は文字列 S の長さ)
  • S の各文字は英大文字または英小文字である。

入力

入力は以下の形式で標準入力から与えられる。

S

出力

条件が満たされていれば Yes、そうでなければ No を出力せよ。


入力例 1

Capitalized

出力例 1

Yes

Capitalized の先頭の文字 C は大文字であり、それ以外の文字 apitalized はすべて小文字であるため、Yes を出力します。


入力例 2

AtCoder

出力例 2

No

AtCoder は先頭以外にも大文字 C を含むため、No を出力します。


入力例 3

yes

出力例 3

No

yes の先頭の文字 y は大文字でないため、No を出力します。


入力例 4

A

出力例 4

Yes

Score: 100 points

Problem Statement

You are given a non-empty string S consisting of uppercase and lowercase English letters. Determine whether the following condition is satisfied:

  • The first character of S is uppercase, and all other characters are lowercase.

Constraints

  • 1 \leq |S| \leq 100 (|S| is the length of the string S.)
  • Each character of S is an uppercase or lowercase English letter.

Input

The input is given from Standard Input in the following format:

S

Output

If the condition is satisfied, print Yes; otherwise, print No.


Sample Input 1

Capitalized

Sample Output 1

Yes

The first character C of Capitalized is uppercase, and all other characters apitalized are lowercase, so you should print Yes.


Sample Input 2

AtCoder

Sample Output 2

No

AtCoder contains an uppercase letter C that is not at the beginning, so you should print No.


Sample Input 3

yes

Sample Output 3

No

The first character y of yes is not uppercase, so you should print No.


Sample Input 4

A

Sample Output 4

Yes
B - Frequency

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 200

問題文

英小文字からなる文字列 S が与えられます。S に最も多く出現する文字を求めてください。そのような文字が複数ある場合は、そのうちアルファベット順で最も早いものを答えてください。

制約

  • 1 \leq |S| \leq 1000|S| は文字列 S の長さ)
  • S の各文字は英小文字である。

入力

入力は以下の形式で標準入力から与えられる。

S

出力

S に最も多く出現する文字のうちアルファベット順で最も早いものを出力せよ。


入力例 1

frequency

出力例 1

e

frequency には e2 回出現し、これは他のどの文字よりも多いため e を出力します。


入力例 2

atcoder

出力例 2

a

atcoder には a, t, c, o, d, e, r1 回ずつ出現するため、このうちアルファベット順で最も早い a を出力します。


入力例 3

pseudopseudohypoparathyroidism

出力例 3

o

Score: 200 points

Problem Statement

You are given a string S consisting of lowercase English letters. Find the character that appears most frequently in S. If multiple such characters exist, report the one that comes earliest in alphabetical order.

Constraints

  • 1 \leq |S| \leq 1000 (|S| is the length of the string S.)
  • Each character in S is a lowercase English letter.

Input

The input is given from Standard Input in the following format:

S

Output

Among the characters that appear most frequently in S, print the one that comes earliest in alphabetical order.


Sample Input 1

frequency

Sample Output 1

e

In frequency, the letter e appears twice, which is more than any other character, so you should print e.


Sample Input 2

atcoder

Sample Output 2

a

In atcoder, each of the letters a, t, c, o, d, e, and r appears once, so you should print the earliest in alphabetical order, which is a.


Sample Input 3

pseudopseudohypoparathyroidism

Sample Output 3

o
C - Leftover Recipes

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300

問題文

冷蔵庫に N 種類の材料があります。これらを材料 1\dots、材料 N と呼びます。材料 iQ_i グラムあります。

あなたは 2 種類の料理を作れます。料理 A は、1 人分を作るのに各材料 i (1 \leq i \leq N)A_i グラム必要です。料理 B は、1 人分を作るのに各材料 iB_i グラム必要です。どちらも整数人分しか作れません。

冷蔵庫にある材料のみを使って、最大で合計何人分の料理を作れますか。

制約

  • 1 \leq N \leq 10
  • 1 \leq Q_i \leq 10^6
  • 0 \leq A_i \leq 10^6
  • A_i \geq 1 であるような i が存在する。
  • 0 \leq B_i \leq 10^6
  • B_i \geq 1 であるような i が存在する。
  • 入力値はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

N
Q_1 Q_2 \dots Q_N
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

出力

最大で合計 S 人分の料理を作れるとして、整数 S を出力せよ。


入力例 1

2
800 300
100 100
200 10

出力例 1

5

この冷蔵庫には、800 グラムの材料 1300 グラムの材料 2 があります。

100 グラムの材料 1100 グラムの材料 2 で料理 A を 1 人分作れ、200 グラムの材料 110 グラムの材料 2 で料理 B を 1 人分作れます。

料理 A を 2 人分、料理 B を 3 人分作るのに必要な材料 1 の量は 100 \times 2 + 200 \times 3 = 800 グラム、材料 2 の量は 100 \times 2 + 10 \times 3 = 230 グラムで、いずれも冷蔵庫にある量を超えません。このようにして合計 5 人分の料理を作ることができますが、6 人分を作る方法はなく、答えは 5 です。


入力例 2

2
800 300
100 0
0 10

出力例 2

38

800 グラムの材料 1 で料理 A を 8 人分、300 グラムの材料 2 で料理 B を 30 人分、合計 38 人分作れます。


入力例 3

2
800 300
801 300
800 301

出力例 3

0

何も作れません。


入力例 4

10
1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0

出力例 4

222222

Score: 300 points

Problem Statement

Your refrigerator has N kinds of ingredients. Let us call them ingredient 1, \dots, ingredient N. You have Q_i grams of ingredient i.

You can make two types of dishes. To make one serving of dish A, you need A_i grams of each ingredient i (1 \leq i \leq N). To make one serving of dish B, you need B_i grams of each ingredient i. You can only make an integer number of servings of each type of dish.

Using only the ingredients in the refrigerator, what is the maximum total number of servings of dishes you can make?

Constraints

  • 1 \leq N \leq 10
  • 1 \leq Q_i \leq 10^6
  • 0 \leq A_i \leq 10^6
  • There is an i such that A_i \geq 1.
  • 0 \leq B_i \leq 10^6
  • There is an i such that B_i \geq 1.
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N
Q_1 Q_2 \dots Q_N
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Output

Assuming that you can make a maximum total of S servings of dishes, print the integer S.


Sample Input 1

2
800 300
100 100
200 10

Sample Output 1

5

This refrigerator has 800 grams of ingredient 1 and 300 grams of ingredient 2.

You can make one serving of dish A with 100 grams of ingredient 1 and 100 grams of ingredient 2, and one serving of dish B with 200 grams of ingredient 1 and 10 grams of ingredient 2.

To make two servings of dish A and three servings of dish B, you need 100 \times 2 + 200 \times 3 = 800 grams of ingredient 1, and 100 \times 2 + 10 \times 3 = 230 grams of ingredient 2, neither of which exceeds the amount available in the refrigerator. In this way, you can make a total of five servings of dishes, but there is no way to make six, so the answer is 5.


Sample Input 2

2
800 300
100 0
0 10

Sample Output 2

38

You can make 8 servings of dish A with 800 grams of ingredient 1, and 30 servings of dish B with 300 grams of ingredient 2, for a total of 38 servings.


Sample Input 3

2
800 300
801 300
800 301

Sample Output 3

0

You cannot make any dishes.


Sample Input 4

10
1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0

Sample Output 4

222222
D - Island Tour

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 425

問題文

AtCoder 諸島は N 個の島からなり、これらの島々は N 本の橋によって結ばれています。 島には 1 から N までの番号が付けられていて、i\ (1\leq i\leq N-1) 本目の橋は島 i と島 i+1 を、N 本目の橋は島 N と島 1 を双方向に結んでいます。 橋を渡る以外に島の間を行き来する方法は存在しません。

AtCoder 諸島では、島 X_1 から始めて島 X_2,X_3,\dots,X_M を順に訪れるツアーが定期的に催行されています。 移動の過程で訪れる島とは別の島を経由することもあり、ツアー中に橋を通る回数の合計がツアーの長さと定義されます。

厳密には、ツアーとは以下の条件を全て満たす l+1 個の島の列 a_0,a_1,\dots,a_l のことであり、その長さl として定義されます。

  • 全ての j\ (0\leq j\leq l-1) について、島 a_j と島 a_{j+1} は橋で直接結ばれている
  • ある 0 = y_1 < y_2 < \dots < y_M = l が存在して、全ての k\ (1\leq k\leq M) について a_{y_k} = X_k

財政難に苦しむ AtCoder 諸島では、維持費削減のため橋を 1 本封鎖することになりました。 封鎖する橋をうまく選んだとき、ツアーの長さの最小値がいくつになるか求めてください。

制約

  • 3\leq N \leq 2\times 10^5
  • 2\leq M \leq 2\times 10^5
  • 1\leq X_k\leq N
  • X_k\neq X_{k+1}\ (1\leq k\leq M-1)
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

N M
X_1 X_2 \dots X_M

出力

答えを整数として出力せよ。


入力例 1

3 3
1 3 2

出力例 1

2
  • 1 本目の橋を封鎖した場合:通る島の列として (a_0,a_1,a_2)=(1,3,2) を取ることで島 1,3,2 を順に訪れることができ、長さ 2 のツアーが催行できます。これより短いツアーは存在しません。
  • 2 本目の橋を封鎖した場合:通る島の列として (a_0,a_1,a_2,a_3)=(1,3,1,2) を取ることで島 1,3,2 を順に訪れることができ、長さ 3 のツアーが催行できます。これより短いツアーは存在しません。
  • 3 本目の橋を封鎖した場合:通る島の列として (a_0,a_1,a_2,a_3)=(1,2,3,2) を取ることで島 1,3,2 を順に訪れることができ、長さ 3 のツアーが催行できます。これより短いツアーは存在しません。

よって、封鎖する橋をうまく選んだときのツアーの長さの最小値は 2 です。

以下の図は左から順に橋 1,2,3 を封鎖した場合を表し、数字の書かれた丸が島、丸同士を結ぶ線が橋、青い矢印が最短のツアーの経路を表します。


入力例 2

4 5
2 4 2 4 2

出力例 2

8

X_1,X_2,\dots,X_M の中に同じ島が複数回現れることもあります。


入力例 3

163054 10
62874 19143 77750 111403 29327 56303 6659 18896 64175 26369

出力例 3

390009

Score: 425 points

Problem Statement

The AtCoder Archipelago consists of N islands connected by N bridges. The islands are numbered from 1 to N, and the i-th bridge (1\leq i\leq N-1) connects islands i and i+1 bidirectionally, while the N-th bridge connects islands N and 1 bidirectionally. There is no way to travel between islands other than crossing the bridges.

On the islands, a tour that starts from island X_1 and visits islands X_2, X_3, \dots, X_M in order is regularly conducted. The tour may pass through islands other than those being visited, and the total number of times bridges are crossed during the tour is defined as the length of the tour.

More precisely, a tour is a sequence of l+1 islands a_0, a_1, \dots, a_l that satisfies all the following conditions, and its length is defined as l:

  • For all j\ (0\leq j\leq l-1), islands a_j and a_{j+1} are directly connected by a bridge.
  • There are some 0 = y_1 < y_2 < \dots < y_M = l such that for all k\ (1\leq k\leq M), a_{y_k} = X_k.

Due to financial difficulties, the islands will close one bridge to reduce maintenance costs. Determine the minimum possible length of the tour when the bridge to be closed is chosen optimally.

Constraints

  • 3\leq N \leq 2\times 10^5
  • 2\leq M \leq 2\times 10^5
  • 1\leq X_k\leq N
  • X_k\neq X_{k+1}\ (1\leq k\leq M-1)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N M
X_1 X_2 \dots X_M

Output

Print the answer as an integer.


Sample Input 1

3 3
1 3 2

Sample Output 1

2
  • If the first bridge is closed: By taking the sequence of islands (a_0, a_1, a_2) = (1, 3, 2), it is possible to visit islands 1, 3, 2 in order, and a tour of length 2 can be conducted. There is no shorter tour.
  • If the second bridge is closed: By taking the sequence of islands (a_0, a_1, a_2, a_3) = (1, 3, 1, 2), it is possible to visit islands 1, 3, 2 in order, and a tour of length 3 can be conducted. There is no shorter tour.
  • If the third bridge is closed: By taking the sequence of islands (a_0, a_1, a_2, a_3) = (1, 2, 3, 2), it is possible to visit islands 1, 3, 2 in order, and a tour of length 3 can be conducted. There is no shorter tour.

Therefore, the minimum possible length of the tour when the bridge to be closed is chosen optimally is 2.

The following figure shows, from left to right, the cases when bridges 1, 2, 3 are closed, respectively. The circles with numbers represent islands, the lines connecting the circles represent bridges, and the blue arrows represent the shortest tour routes.


Sample Input 2

4 5
2 4 2 4 2

Sample Output 2

8

The same island may appear multiple times in X_1, X_2, \dots, X_M.


Sample Input 3

163054 10
62874 19143 77750 111403 29327 56303 6659 18896 64175 26369

Sample Output 3

390009
E - Chords

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 500

問題文

円周上に 2N 個の点が等間隔に並んでおり、ある点から始めて時計回りに 1 から 2N までの番号が付けられています。

円周上にはさらに N 個の弦があり、i 個目の弦は点 A_i と点 B_i を結んでいます。 ここで、A_1,\dots,A_N,B_1,\dots,B_N は全て相異なることが保証されます。

弦どうしの交点が存在するかどうか判定してください。

制約

  • 2\leq N \leq 2\times 10^5
  • 1\leq A_i,B_i \leq 2N
  • A_1,\dots,A_N,B_1,\dots,B_N は全て相異なる
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

N
A_1 B_1
A_2 B_2
\vdots
A_N B_N

出力

弦どうしの交点が存在するならば Yes を、存在しないならば No を出力せよ。


入力例 1

3
1 3
4 2
5 6

出力例 1

Yes

図のように、弦 1(点 1 と点 3 を結ぶ線分)と弦 2(点 4 と点 2 を結ぶ線分)が交点を持つので、Yes を出力します。


入力例 2

3
6 1
4 3
2 5

出力例 2

No

図のように、弦どうしの交点は存在しないので、No を出力します。


入力例 3

4
2 4
3 7
8 6
5 1

出力例 3

Yes

Score: 500 points

Problem Statement

There are 2N points placed at equal intervals on a circle, numbered 1 to 2N in a clockwise direction starting from a certain point.

There are also N chords on the circle, with the i-th chord connecting points A_i and B_i. It is guaranteed that all the values A_1,\dots,A_N,B_1,\dots,B_N are distinct.

Determine whether there is an intersection between the chords.

Constraints

  • 2\leq N \leq 2\times 10^5
  • 1\leq A_i,B_i \leq 2N
  • A_1,\dots,A_N,B_1,\dots,B_N are all distinct
  • All input values are integers

Input

The input is given from Standard Input in the following format:

N
A_1 B_1
A_2 B_2
\vdots
A_N B_N

Output

If there is an intersection between the chords, print Yes; otherwise, print No.


Sample Input 1

3
1 3
4 2
5 6

Sample Output 1

Yes

As shown in the figure, chord 1 (the line segment connecting points 1 and 3) and chord 2 (the line segment connecting points 4 and 2) intersect, so print Yes.


Sample Input 2

3
6 1
4 3
2 5

Sample Output 2

No

As shown in the figure, there is no intersection between the chords, so print No.


Sample Input 3

4
2 4
3 7
8 6
5 1

Sample Output 3

Yes
F - Negative Traveling Salesman

Time Limit: 6 sec / Memory Limit: 1024 MB

配点 : 500

問題文

N 頂点 M 辺の重み付き単純有向グラフがあります。 頂点には 1 から N までの番号が付けられていて、i 本目の辺は頂点 U_i から頂点 V_i に伸びる重み W_i の辺です。 ここで、重みは負の値を取ることもありますが、負閉路は存在しません。

全ての頂点を一度以上通るようなウォークが存在するかどうか判定し、存在するならば通る辺の重みの総和の最小値を求めてください。 ただし、同じ辺を複数回通る場合、その辺の重みは通った回数分加算されるものとします。

なお、「全ての頂点を一度以上通るようなウォーク」とは、頂点の列 v_1,v_2,\dots,v_k であって以下の条件を共に満たすもののことを言います。

  • すべての i\ (1\leq i\leq k-1) について、頂点 v_i から頂点 v_{i+1} に伸びる辺が存在する
  • すべての j\ (1\leq j\leq N) について、v_i=j を満たす i\ (1\leq i\leq k) が存在する

制約

  • 2\leq N \leq 20
  • 1\leq M \leq N(N-1)
  • 1\leq U_i,V_i \leq N
  • U_i \neq V_i
  • (U_i,V_i) \neq (U_j,V_j)\ (i\neq j)
  • -10^6\leq W_i \leq 10^6
  • 与えられるグラフに負閉路は存在しない
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

N M
U_1 V_1 W_1
U_2 V_2 W_2
\vdots
U_M V_M W_M

出力

全ての頂点を一度以上通るようなウォークが存在するならば通る辺の重みの総和の最小値を、存在しないならば No を出力せよ。


入力例 1

3 4
1 2 5
2 1 -3
2 3 -4
3 1 100

出力例 1

-2

頂点 2\rightarrow 1\rightarrow 2\rightarrow 3 の順に辿ると、全ての頂点を一度以上通ることができ、通る辺の重みの総和は (-3)+5+(-4)=-2 になります。 これが最小です。


入力例 2

3 2
1 2 0
2 1 0

出力例 2

No

全ての頂点を一度以上通るようなウォークは存在しません。


入力例 3

5 9
1 2 -246288
4 5 -222742
3 1 246288
3 4 947824
5 2 -178721
4 3 -947824
5 4 756570
2 5 707902
5 1 36781

出力例 3

-449429

Score: 500 points

Problem Statement

There is a weighted simple directed graph with N vertices and M edges. The vertices are numbered 1 to N, and the i-th edge has a weight of W_i and extends from vertex U_i to vertex V_i. The weights can be negative, but the graph does not contain negative cycles.

Determine whether there is a walk that visits each vertex at least once. If such a walk exists, find the minimum total weight of the edges traversed. If the same edge is traversed multiple times, the weight of that edge is added for each traversal.

Here, "a walk that visits each vertex at least once" is a sequence of vertices v_1,v_2,\dots,v_k that satisfies both of the following conditions:

  • For every i (1\leq i\leq k-1), there is an edge extending from vertex v_i to vertex v_{i+1}.
  • For every j\ (1\leq j\leq N), there is i (1\leq i\leq k) such that v_i=j.

Constraints

  • 2\leq N \leq 20
  • 1\leq M \leq N(N-1)
  • 1\leq U_i,V_i \leq N
  • U_i \neq V_i
  • (U_i,V_i) \neq (U_j,V_j) for i\neq j
  • -10^6\leq W_i \leq 10^6
  • The given graph does not contain negative cycles.
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N M
U_1 V_1 W_1
U_2 V_2 W_2
\vdots
U_M V_M W_M

Output

If there is a walk that visits each vertex at least once, print the minimum total weight of the edges traversed. Otherwise, print No.


Sample Input 1

3 4
1 2 5
2 1 -3
2 3 -4
3 1 100

Sample Output 1

-2

By following the vertices in the order 2\rightarrow 1\rightarrow 2\rightarrow 3, you can visit all vertices at least once, and the total weight of the edges traversed is (-3)+5+(-4)=-2. This is the minimum.


Sample Input 2

3 2
1 2 0
2 1 0

Sample Output 2

No

There is no walk that visits all vertices at least once.


Sample Input 3

5 9
1 2 -246288
4 5 -222742
3 1 246288
3 4 947824
5 2 -178721
4 3 -947824
5 4 756570
2 5 707902
5 1 36781

Sample Output 3

-449429
G - evall

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

文字列 S が与えられます。S の各文字は 123456789+* のいずれかで、S の先頭と末尾の文字は数字であり、S の中で数字でない文字どうしが隣接することはありません。

整数の組 i, j1 \leq i \leq j \leq |S|)に対して、\mathrm{eval}(S_{i..j}) を以下のように定義します。

  • Si 文字目と j 文字目がともに数字であれば、\mathrm{eval}(S_{i..j})Si 文字目から j 文字目まで(両端含む)を通常の数式として評価した結果とする(* は乗算とする)。例えば、S = 1+2*151 のとき、\mathrm{eval}(S_{1..6}) = 1 + 2 \times 15 = 31 である。
  • そうでなければ、\mathrm{eval}(S_{i..j})0 とする。

{\displaystyle \sum_{i=1}^{|S|} \sum_{j=i}^{|S|} \mathrm{eval}(S_{i..j})}998244353 で割ったあまりを求めてください。

制約

  • 1 \leq |S| \leq 10^6
  • S の各文字は 123456789+* のいずれかである。
  • S の先頭と末尾の文字は数字である。
  • S の中で数字でない文字どうしが隣接することはない。

入力

入力は以下の形式で標準入力から与えられる。

S

出力

{\displaystyle \sum_{i=1}^{|S|} \sum_{j=i}^{|S|} \mathrm{eval}(S_{i..j})}998244353 で割ったあまりを出力せよ。


入力例 1

1+2*34

出力例 1

197

\mathrm{eval}(S_{i..j})0 でない場合は以下の通りです。

  • \mathrm{eval}(S_{1..1}) = 1
  • \mathrm{eval}(S_{1..3}) = 1 + 2 = 3
  • \mathrm{eval}(S_{1..5}) = 1 + 2 \times 3 = 7
  • \mathrm{eval}(S_{1..6}) = 1 + 2 \times 34 = 69
  • \mathrm{eval}(S_{3..3}) = 2
  • \mathrm{eval}(S_{3..5}) = 2 \times 3 = 6
  • \mathrm{eval}(S_{3..6}) = 2 \times 34 = 68
  • \mathrm{eval}(S_{5..5}) = 3
  • \mathrm{eval}(S_{5..6}) = 34
  • \mathrm{eval}(S_{6..6}) = 4

以上の合計は 1+3+7+69+2+6+68+3+34+4 = 197 です。


入力例 2

338*3338*33338*333338+3333338*33333338+333333338

出力例 2

527930018

Score: 600 points

Problem Statement

You are given a string S. Each character of S is one of 123456789+*, and the first and last characters of S are digits. There are no adjacent non-digit characters in S.

For a pair of integers i, j (1 \leq i \leq j \leq |S|), we define \mathrm{eval}(S_{i..j}) as follows:

  • If both the i-th and j-th characters of S are digits, then \mathrm{eval}(S_{i..j}) is the result of evaluating the i-th to the j-th characters (inclusive) of S as a usual arithmetic expression (where * represents multiplication). For example, if S = 1+2*151, then \mathrm{eval}(S_{1..6}) = 1 + 2 \times 15 = 31.
  • Otherwise, \mathrm{eval}(S_{i..j}) is zero.

Find {\displaystyle \sum_{i=1}^{|S|} \sum_{j=i}^{|S|} \mathrm{eval}(S_{i..j})}, modulo 998244353.

Constraints

  • 1 \leq |S| \leq 10^6
  • Each character of S is one of 123456789+*.
  • The first and last characters of S are digits.
  • There are no adjacent non-digit characters in S.

Input

The input is given from Standard Input in the following format:

S

Output

Print {\displaystyle \sum_{i=1}^{|S|} \sum_{j=i}^{|S|} \mathrm{eval}(S_{i..j})}, modulo 998244353.


Sample Input 1

1+2*34

Sample Output 1

197

The cases where \mathrm{eval}(S_{i..j}) is not zero are as follows:

  • \mathrm{eval}(S_{1..1}) = 1
  • \mathrm{eval}(S_{1..3}) = 1 + 2 = 3
  • \mathrm{eval}(S_{1..5}) = 1 + 2 \times 3 = 7
  • \mathrm{eval}(S_{1..6}) = 1 + 2 \times 34 = 69
  • \mathrm{eval}(S_{3..3}) = 2
  • \mathrm{eval}(S_{3..5}) = 2 \times 3 = 6
  • \mathrm{eval}(S_{3..6}) = 2 \times 34 = 68
  • \mathrm{eval}(S_{5..5}) = 3
  • \mathrm{eval}(S_{5..6}) = 34
  • \mathrm{eval}(S_{6..6}) = 4

The sum of these is 1+3+7+69+2+6+68+3+34+4 = 197.


Sample Input 2

338*3338*33338*333338+3333338*33333338+333333338

Sample Output 2

527930018