QOJ.ac

QOJ

Time Limit: 0.2 s Memory Limit: 32 MB Total points: 100

#6707. Special Experiment

الإحصائيات

As we know, an atom can be in different energy states (or "energy levels"). Usually, when it transits from a higher energy state to a lower one, it will emit a photon, whose energy is equal to the difference in energy of these two states. Absorption of photons is the reverse process. If a photon, whose energy equal to the difference in energy of two states of an atom, passes by, it may be absorbed and its energy will put the atom into a higher energy level. For most elements, the atom can transit between any two states directly, by emitting or absorbing only one photon.

Scientists are puzzled by a new element that they discovered recently. For two certain energy states, the atom of this element can transit between them directly (emitting or absorbing one and only one photon), but for some other pairs of energy states, the atom cannot.

Generally speaking, when an atom transits among energy states one after another, a trail of events (emitting or absorbing a photon) occurs. For example, when transiting from energy state $E_{i_1}$ to $E_{i_t}$, the atom follows this sequence:

$$E_{i_1}, E_{i_2}, E_{i_3}, ..., E_{i_k}, ..., E_{i_t}$$

where $E_{i_k}$ ($1 \leq k \leq t$) represents a certain energy state. During the process of transiting from $E_{i_k}$ to $E_{i_{k+1}}$ , one and only one photon is emitted or absorbed.

The atom can be in any energy state and transit to some other one. But as we mentioned above, for some pairs of energy states, this special atom cannot transit between them directly. What's more, when its energy state changes from one to another, for example, from $E_{j_1}$ to $E_{j_w}$, it can only follow a unique sequence $E_{j_1}, E_{j_2}, E_{j_3}, ..., E_{j_w}$. And the most interesting thing is that it can only follow another unique sequence $E_{j_w}, ...,E_{j_3}, E_{j_2}, E_{j_1}$, when it transits back from $E_{j_w}$ to $E_{j_1}$. You can find that it is the reversion of the former one! Right! Isn't it special?

Now, the scientists need your help today. In an experiment, some atoms of this new element will be put into a container. Any two atoms would be regarded as "dangerous atoms" if they satisfy one of the following conditions:

  • They are in the same energy state.
  • They are in different energy states. But if one of them emits or absorbs a photon, they will be in the same states too.

You must make sure that there are no dangerous atoms in this container. And the higher the total energy of the atoms in the container is, the more easily will the experiment succeed.

Now, the scientists have told you all photons that the atoms of this element can emit or absorb, as well as the energy of all atom states. They ask you calculate the highest total energy that the atoms in the container can reach.

Input

There are several testcases in the input. Each begins with a line containing two integers $N$, $M$ (0$ < N, M \leq 200$), representing the number of the energy levels and the number of the different photons that this kind of atom can emit or absorb respectively. The two numbers are followed by exactly $N + M$ lines, which contain one positive integer each. These $N+M$ positive integers are not greater than $1\,000\,000$. The first $N$ distinguishing integers are the energy of the atom in the $N$ different energy states in ascending order. The next $M$ integers correspond to the energy of the $M$ different photons, which can be emitted or absorbed by atoms of this element. If the difference in energy of any two states equals to the energy of one of the $M$ photons, the atom can transit between these two states directly.

There is no blank line between two data sets. The last testcase is followed by a line containing two zeros.

Output

For each testcase, output one line containing an integer, which indicates the highest total energy that the atoms in the container can reach. There should be no blank line between any two cases.

Sample Input

3 1
2
4
6
2
0 0

Sample Output

8
About Issues

We understand that our problem archive is not perfect. If you find any issues with the problem, including the statement, scoring configuration, time/memory limits, test cases, etc.

You may use this form to submit an issue regarding the problem. A problem moderator will review your issue and proceed it properly.

STOP! Before you submit an issue, please READ the following guidelines:

  1. This is not a place to publish a discussion, editorial, or requests to debug your code. Your issue will only be visible by you and problem moderators. Other users will not be able to view or reply your issues.
  2. Do not submit duplicated issues. If you have already submitted one, please wait for an moderator to review it. Submitting multiple issues will not speed up the review process and might cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
  4. Be sure your issue is related to this problem. If you need to submit an issue regarding another problem, contest, category, etc., you should submit it to the corresponding page.

Active Issues 0

No issues in this category.

Closed/Resolved Issues 0

No issues in this category.