გამოსახულებები

დროის ლიმიტი: 1 წმ

მეხსიერების ლიმიტი: 64 მეგაბაიტი

შემავალი მონაცემები: stdin

გამომავალი მონაცემები: stdout

წყარო: IBSU, 2015, ზამთრის ოლიმპიადა, IX-X


მოცემულია პატარა ლათინური ასოებისაგან, არითმეტიკული ოპერაციის ნიშნებისაგან: + (შეკრება), - (გამოკლება), * (გამრავლება), / (გაყოფა), ^ (ახარისხება) და ფრჩხილებისაგან შედგენილი არითმეტიკული გამოსახულება. მისი მნიშვნელობის გამოსათვლელად ვსარგებლობთ შემდეგი წესებით:

_ ახარისხება სრულდება გამრავლებაზე და გაყოფაზე ადრე. თავის მხრივ, გამრავლება და გაყოფა სრულდება შეკრებაზე და გამოკლებაზე ადრე;

_ გამოკლების (ან გაყოფის) მიმდევრობით აღებული რამდენიმე  ოპერაციის შემთხვევაში მოქმედებები სრულდება მარცხნიდან მარჯვნივ. იგივე წესი მოქმედებს გამოკლების და შეკრების (ან გაყოფის და გამრავლების) მიმდევრობით აღებული რამდენიმე ოპერაციის შემთხვევაში. ახარისხების მიმდევრობით აღებული რამდენიმე ოპერაციის შემთხვევაში მოქმედებები სრულდება მარჯვნიდან მარცხნივ;

_ გამოსახულების ფრჩხილებში ჩასმული ნაწილი სრულდება მის მეზობელ ოპერაციებზე ადრე.

ზემოთ აღწერილი წესების დაცვით ჩვენ შეგვიძლია გამოვთვალოთ მოცემული გამოსახულების მნიშვნელობა ოპერაციათა შესრულების განსხვავებული მიმდევრობების გამოყენებით. მაგალითად, მიმდევრობით აღებული შეკრების რამდენიმე ოპერაციის შედეგი შეიძლება გამოთვლილი იქნას ნებისმიერი რიგითობით. ასევე, თითოეული ოპერაციისათვის ჩვენ შეგვიძლია ავირჩიოთ მისი პირველი და მეორე ოპერანდების გამოთვლის რიგითობა.

დაწერეთ პროგრამა, რომელიც იპოვის რამდენი განსხვავებული გზით არის შესაძლებელი მოცემული გამოსახულების მნიშვნელობის კორექტულად გამოთვლა.

შესატანი მონაცემები: სტანდარტული შეტანის პირველ სტრიქონში ჩაწერილია მოცემული არითმეტიკული გამოსახულება. გამოსახულების სიგრძე არ აღემატება 25 სიმბოლოს.

გამოსატანი მონაცემები: სტანდარტული გამოტანის ერთადერთ სტრიქონში უნდა ჩაიწეროს ერთი მთელი დადებითი რიცხვი - მოცემული გამოსახულების მნიშვნელობის გამოთვლის ყველა შესაძლებელ გზათა რაოდენობა.




მაგალითები

შესატანი მონაცემები
a-b-c დაკოპირება
გამოსატანი მონაცემები
1 დაკოპირება
შესატანი მონაცემები
(a+b)*(a-b) დაკოპირება
გამოსატანი მონაცემები
2 დაკოპირება