Determine ALL blocks (concepts, techniques, rules, functions — the smallest learnable units) of the topic "{topic}" for a learning guide. {source} Rules: - A block solves EXACTLY ONE PROBLEM. Variants of the same solution belong in the one block, not as separate entries (right: `

` is one block, `` with all types is one block, "Ich-Botschaften" is one block, "Present Perfect" with all signal words is one block; wrong: 21 entries for each input type or one entry per irregular verb, but also collective entries that mix several problems). - A block is ATOMIC: exactly one idea, complete in itself. Test: you can remove nothing without making it incomplete — and nothing is missing to understand it. - Granularity: a block is a LEARNING UNIT, not a dictionary entry. Families learned together (e.g. the font-* properties, the modal verbs) are ONE block. - Abstraction level (important): a block is self-contained — explainable WITHOUT presupposing ANOTHER block as its subject. These are problems, methods/algorithms, definitions, named theorems with their own statement. A detail that presupposes another concept belongs IN that concept's block (as a part), not as its own entry: - A PROPERTY of a concept belongs to the concept: „Clique" is a block; „Clique ist NP-vollständig", „Clique ∈ NP", „Laufzeit von Clique" are parts of it — not their own entry. - A PROOF/reduction component belongs to the theorem/reduction: „A-Komponente", „Dummy-Item", „αEnde", „Hilfsvariable" — not its own entry. - Pure NOTATION/symbols belong to their definition: „|x|", „Σ∗" — not their own entry. - A standalone REDUCTION between two problems, however, is its own block („3-SAT ≤ Clique"). - NO categories, NO ranking, NO ordering by importance — only a flat, numbered list. - Aim for the natural number of genuine learning units for this material — there is no hard quota, but do NOT split hairs to inflate the count (prefer the "families learned together = ONE block" rule above). STOP when the only remaining candidates are exercises, meta-questions, administrative notes, or duplicates of blocks you already listed. - **EXCLUDE non-content — these are NEVER learning blocks:** exercise/task/assignment scaffolding ("Aufgabe 3", "Bonusaufgabe", "Übung", "Blatt 11", point values), meta/assessment items ("welche der folgenden…", true/false prompts, hand-in / exam-date notes), administrative & boilerplate (headings, page/room/exam numbers, names, copyright), and any **file names, paths, or URLs** (those are provenance, recorded separately — never a block or part of one). - Invent nothing: include only blocks actually supported by the provided material. - Write title and description in GERMAN (technical terms/code identifiers stay original). - Description at most ~12 words. Write ONLY the Markdown file to: {blocks_path} Format: EXACTLY one line per block: `N. Title — Kurzbeschreibung` Use the em-dash " — " (a space on EACH side) ONLY to separate the title from the short description — never elsewhere in the line, and never inside the title or the description. Do NOT append the source file name, path, or URL to the line — provenance is recorded separately by the pipeline. {focus} {extra}